如何使gdb在回溯中显示模块名称

如何使gdb在回溯中显示模块名称,gdb,debug-symbols,backtrace,Gdb,Debug Symbols,Backtrace,如果加载了所有调试符号-gdb backtrace显示如下内容: #0 m4_traceon (obs=0x24eb0, argc=1, argv=0x2b8c8) at builtin.c:993 #1 0x6e38 in expand_macro (sym=0x2b600) at macro.c:242 #2 0x6840 in expand_token (obs=0x0, t=177664, td=0xf7fffb08) at macro.c:71 #0 m4_traceon (

如果加载了所有调试符号-gdb backtrace显示如下内容:

#0  m4_traceon (obs=0x24eb0, argc=1, argv=0x2b8c8) at builtin.c:993
#1  0x6e38 in expand_macro (sym=0x2b600) at macro.c:242
#2  0x6840 in expand_token (obs=0x0, t=177664, td=0xf7fffb08) at macro.c:71
#0  m4_traceon (obs=0x24eb0, argc=1, argv=0x2b8c8) at builtin.c:993 from Lib1.so
#1  0x6e38 in expand_macro (sym=0x2b600) at macro.c:242 from Lib2.so
#2  0x6840 in expand_token (obs=0x0, t=177664, td=0xf7fffb08) at macro.c:71 from MyApp
但我需要这样的东西:

#0  m4_traceon (obs=0x24eb0, argc=1, argv=0x2b8c8) at builtin.c:993
#1  0x6e38 in expand_macro (sym=0x2b600) at macro.c:242
#2  0x6840 in expand_token (obs=0x0, t=177664, td=0xf7fffb08) at macro.c:71
#0  m4_traceon (obs=0x24eb0, argc=1, argv=0x2b8c8) at builtin.c:993 from Lib1.so
#1  0x6e38 in expand_macro (sym=0x2b600) at macro.c:242 from Lib2.so
#2  0x6840 in expand_token (obs=0x0, t=177664, td=0xf7fffb08) at macro.c:71 from MyApp

有可能吗?

没有内置的方法可以做到这一点。我认为gdb bugzilla中有一个bug,如果您感兴趣,可以跟踪它

但是,如果您确实需要它,您可以用Python重写
bt
,并对其进行自定义以执行任何您喜欢的操作。

可能就是您所指的。这个bug甚至指向了要在gdb代码中执行的补丁,但自2009年编写bug以来,情况可能已经发生了变化:)