[lldb-dev] Hiding trampoline functions from the backtrace, is it possible ?

Nat! via lldb-dev lldb-dev at lists.llvm.org
Mon Sep 23 02:12:17 PDT 2019


When I am using `bt` to look at my backtrace, I get for a method call 
breakpoint in `+[Hello printName:version:]` a stacktrace like this (with 
my custom Objective-C runtime):

```
   * frame #0: 0x00000000004179b3 test-debugger`+[Hello 
printName:version:](self=Hello, _cmd=<no value available>, 
_param=0x00007fffffffd8a8, name=<unavailable>, version=<unavailable>) at 
main.m:21:21
     frame #1: 0x00000000004bb659 
test-debugger`_mulle_objc_object_call_class_nofail(obj=0x000000000066a200, 
methodid=3009363030, parameter=0x00007fffffffd8a8, 
cls=0x000000000066a3e0) at mulle-objc-call.c:668:13
     frame #2: 0x00000000004bbe60 
test-debugger`_mulle_objc_object_call_class(obj=0x000000000066a200, 
methodid=3009363030, parameter=0x00007fffffffd8a8, 
cls=0x000000000066a3e0) at mulle-objc-call.c:939:18
     frame #3: 0x00000000004bcb63 
test-debugger`_mulle_objc_object_call_class_needcache(obj=0x000000000066a200, 
methodid=3009363030, parameter=0x00007fffffffd8a8, 
cls=0x000000000066a3e0) at mulle-objc-call.c:1320:13
     frame #4: 0x00000000004bcf61 
test-debugger`mulle_objc_object_call(obj=0x000000000066a200, 
methodid=3009363030, parameter=0x00007fffffffd8a8) at 
mulle-objc-call.c:1379:13
     frame #5: 0x0000000000417a28 test-debugger`main(argc=1, 
argv=0x00007fffffffd9c8) at main.m:29:4
```

I have my Plugin/LanguageRuntime/ObjC/MulleObjC added to lldb and it is 
working fine for stepping through from "main" to "-[Hello 
printName:version:]" directly. Now I wonder, if there are provisions in 
lldb to extend this idea of trampoline hiding to stacktraces (preferably 
as an option), so the stacktrace would look like this:


```
   * frame #0: 0x00000000004179b3 test-debugger`+[Hello 
printName:version:](self=Hello, _cmd=<no value available>, 
_param=0x00007fffffffd8a8, name=<unavailable>, version=<unavailable>) at 
main.m:21:21
    frame #5: 0x0000000000417a28 test-debugger`main(argc=1, 
argv=0x00007fffffffd9c8) at main.m:29:4
```

Ciao
     Nat!

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20190923/b8fe555f/attachment.html>


More information about the lldb-dev mailing list