jon*_*_ou 10 callstack gdb shared-libraries
当我从gdb获取callstack时,我只获取函数名和源文件信息.
(gdb) f #0 main (argc=1, argv=0xbffff1d4) at main.c:5
我没有得到该函数所属的共享库或应用程序.
在Windows上,Windbg或Visual Studio将显示带有"myDll!myFunc"格式的callstack,该格式显示该函数属于哪个模块.
目前在gdb中,我使用"info address [function]"来获取函数符号的地址,然后使用"info share"手动查找函数在内存中的范围,以确定它所在的库.
无论如何直接看图书馆没有这个手动过程?
Ser*_*kov 16
你可以用info symbol.它打印函数的库名称.
像这样:
(gdb) info symbol f
f(double) in section .text of libmylib_gcc.so
(gdb) info symbol printf
printf in section .text of /lib64/libc.so.6
Run Code Online (Sandbox Code Playgroud)