gpt4 book ai didi

c - 如何根据库中的地址查找函数名称

转载 作者:行者123 更新时间:2023-11-30 15:50:21 24 4
gpt4 key购买 nike

我正在使用 backtrace_symbols() 从我的 C 代码中打印堆栈(遵循 http://www.gnu.org/software/libc/manual/html_node/Backtraces.html 上的说明)。但是,即使我使用 -g -rdynamic 构建了库,我也只能获取动态库中堆栈帧的地址。

现在,我有了正在运行的进程,也有了库,我如何找出每个帧地址对应哪个方法?预先感谢您。

这是在 64 位 Linux 上。

我的打印输出示例如下所示:

Obtained 9 stack frames.
/tmp/libexample.so [0x2aaabaae9771]
/tmp/libexample.so [0x2aaabaae9828]
/tmp/libexample.so [0x2aaabaaa8138]
/tmp/libexample.so [0x2aaabaab2402]
/tmp/libexample.so [0x2aaabaabd029]
/tmp/libexample.so [0x2aaabaa1e23a]
/tmp/libexample.so [0x2aaabaa24ded]
/lib64/libpthread.so.0 [0x30b700677d]

最佳答案

我认为您正在寻找 dladdr 函数。

关于c - 如何根据库中的地址查找函数名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15824932/

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