How to show call path in backtrace with jdb?

Zihan Yang whois.zihan.yang at gmail.com
Tue Mar 13 04:58:57 CET 2018


Hi all,

I'm trying to debug L4Linux using jdb in Fiasco. I have added a
breakpoint in a function(e.g, syscall_exit), and it did hit into jdb
when I run. However, when I type 'bt' in jdb, it only prints the
values in the stack, or worse, it sometimes couldn't print the stack.

I have tried enabling L4_DEBUG_REGISTER_NAMES and CONFIG_FRAME_POINTER
in L4Linux, and uncheck 'config without frame pointer' and 'generate
inline code' options in Fiasco, but still it doesn't work.

QEMU could be an option, but qemu debugs the whole system while I just
want to focus on the L4Linux itself because I just want to figure out
the call path of ret_from_fork and how does L4Linux stop the user
dispatch loop, etc.

Is there any way to show the the call path in jdb to assist the debugging work?

By way, is there any doc describing the call path from fiasco to
L4Linux, I know it is implemented with sysretq or iretq, but where is
the entrypoint in L4Linux? For example, when I type 'ls /bin' in
shell, it would finally go into L4Linux's function 'syscall_exit()',
but how can I find the call path between them? If I can figure it out,
maybe I just don't need to debug anymore.

Thanks



More information about the l4-hackers mailing list