Is it possible to "inject" into the stack or show non-stack entries via frame decorator api?

Simon Sobisch simonsobisch@gnu.org
Sat Jul 17 14:22:06 GMT 2021


Just a friendly ping - any insight highly appreciated.

> Scenario:
> 
> the current call-stack currently looks like
> 
> #0 func3
> #1 func3_wrapper
> #2 func2
> #3 func2_wrapper
> #4 func1
> #5 func1_wrapper
> #6 main
> 
> 
> Using frame filters it is no problem to change that to either
> 
> #0 func3
> #2 func2
> #4 func1
> 
> or
> 
> #0 func3
>     #1 func3_wrapper
> #2 func2
>     #3 func2_wrapper
> #4 func1
>     #5 func1_wrapper
> #6 main
> 
> 
> Question: Is it possibly to also add a "virtual" stack entry (one could 
> select/up/down to), or at least show it in the backtrace?
> 
> Something like the following:
> 
> #0 func3 at ...
>     #0.1  func3_part_a at ...
>     #0.2  func3_part_c at ...
>     #0.3  func3_part_b at ...
>     #0.4  func3_part_a at ...
>     #0.5  func3_start at ...
> #2 func2 at ...
> 
> 
> Background:
> Each of those "func" entries in the stack have an internal frame 
> handling using a linked list that contains label address pointers. It 
> would be very cool to list those directly (currently only done with 
> additional commands local-backtrace and list-local-frame which I'd like 
> to drop).
> 
> I _guess_ adding those to the shown stack may be possible, but likely 
> only with telling GDB about those (patching GDB), but maybe there's a 
> way to at least print those with their positions in "bt" using a frame 
> decorator?
> 
> Thanks for answers,
> Simon


More information about the Gdb mailing list