gpt4 book ai didi

gdb - 如何确定 gdb 中的函数属于哪个共享库?

转载 作者:行者123 更新时间:2023-12-04 03:15:38 36 4
gpt4 key购买 nike

当我从 gdb 获取调用堆栈时,我只获取函数名和源文件信息。

(gdb) f
#0 main (argc=1, argv=0xbffff1d4) 在 main.c:5

我不知道该函数属于哪个共享库或应用程序。

在 Windows 上,Windbg 或 Visual Studio 将显示具有“myDll!myFunc”格式的调用堆栈,它向您显示该函数属于哪个模块。

目前在gdb中我使用“info address [function]”来获取函数符号的地址,然后使用“info share”手动查找函数在内存中的范围以确定它在哪个库中。

无论如何,无需此手动过程即可直接查看库?

最佳答案

您可以使用 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

关于gdb - 如何确定 gdb 中的函数属于哪个共享库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23779867/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com