On 23.09.19 19:22, Adrian Prantl wrote:
I think the best mechanism for this would be to ensure that the trampolines are
marked up as DW_AT_artificial and/or DW_AT_trampoline by the compiler. I'm
pretty sure LLDB then already knows how to hide artificial frames (somebody
else can probably provide pointers for how that works).
-- adrian
That's a good idea. I can just put __attribute__((artificial)__ on my
dispatch functions. That's the low-hanging-fruit code I like :)
And though it might not fully work yet with lldb , it may in the future.
On 23.09.19 20:36, Jim Ingham wrote:
lldb can step through trampolines (and step back out again in some cases). But
there isn't any support for suppressing the printing of frames.
One way to add this is to use the "Frame Recognizers" Kuba added to lldb recently. The
use he had for them was to produce artificial variables for frames you don't have debug information
for. But one of the other jobs I had envisioned for frame recognizers was to mark frames as
uninteresting for printing. Then you could hook up "bt" to suppress frames that the
recognizer marked this way. Since you can add recognizers in Python, this is a fairly attractive
way to go, since people could adjust their printing to suppress frames not interesting to them.
And of course, as Adrian suggested, recognizers could consult the debug info as well to suppress
DW_AT_artificial and DW_AT_trampoline.
Ha. Having to deal additionally with python is not what I call
attractive :)
Thanks for those reponses. Very helpful.
Ciao
Nat!
_______________________________________________
lldb-dev mailing list
lldb-dev@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev