igorkudrin wrote:

> > because a breakpoint was set before the last instruction of the function
> 
> Expand this a bit. Like "Meaning, before the epilogue of the function."

I expanded the description a bit; hope it is clearer now. I don't think 
mentioning "epilogue" would improve it. Probably, my original description, 
which mentioned it, was too confusing.

Actually, we can set a breakpoint at the first instruction of the epilogue by 
rewriting the source like:
```
void done() {
  return; // Set breakpoint here
}
```
With `br set -p "// Set breakpoint here"`, a breakpoint can be set at the start 
of the epilogue:
```
> objdump -dl main.o
0000000000000000 <done>:
done():
.../main.c:2
   0:   55                      push   %rbp
   1:   48 89 e5                mov    %rsp,%rbp
.../main.c:3
   4:   5d                      pop    %rbp
   5:   c3                      ret
   6:   66 2e 0f 1f 84 00 00    cs nopw 0x0(%rax,%rax,1)
   d:   00 00 00
```
But that would not help much, because it is still not the last instruction of 
the function and does not prove interaction between thread plans.

https://github.com/llvm/llvm-project/pull/161788
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to