| Issue |
180445
|
| Summary |
In lldb on FreeBSD `thread step-out` doesn't always work
|
| Labels |
new issue
|
| Assignees |
|
| Reporter |
jgopensource
|
Steps to reproduce:
1. Put the following simple program into a file named `hello.c`:
```
#include <stdio.h>
int main(void) {
printf("Hello World");
return 0;
}
```
2. Compile the program: `clang -O0 -g -o hello hello.c`
3. Start lldb: `lldb hello`
4. Execute the following lldb commands:
```
breakpoint set -n vfprintf
run
thread step-out
thread step-out
```
Observed behaviour: An error message is displayed: `error: Could not create return address breakpoint. Return address (0x81552584) did not point to executable memory.`
The problem is caused by using a stale cache of memory regions. The cache is never invalidated, even when new dynamic shared objects are loaded into memory. The relevant code is in `NativeProcessFreeBSD::GetMemoryRegionInfo()` in the file `llvm-project/lldb/source/Plugins/Process/FreeBSD/NativeProcessFreeBSD.cpp`.
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs