我在调试一个开源库,该库有一个在加载时被初始化的结构。其中一个结构的成员是一个函数指针。什么是最快的方法来确定它指向哪个功能?例如,如果我打印出函数指针的值,是否有一些工具可以用来查找函数的名称?我在嵌入式Linux系统上执行此操作,并且GDB不可用(尚未)。这个地址指向哪个函数?
2
A
回答
5
链接器可以输出一个映射文件。假设你的功能不移动,你可以在那里查找地址。生成地图文件的选项可能会有所不同;在我的Mac上它是-map
,Linux man page表示它是-Map
。
除此之外,如果您没有工作源代码级调试解决方案,您应该做的第一件事情是得到一个。停止所有其他工作,直到您拥有适合开发的基础设施。您可能必须努力说服您的管理层认为这很重要,但希望您能让他们理解。
1
我认为你会发现addr2line command有用。
相关问题
- 1. “&ref_var”指向哪个地址?
- 2. 指向成员函数的C++函数指针 - 它接收哪个地址?
- 3. 哪个地址和自我指向?
- 4. 指向下一个地址
- 5. 这个函数指针如何不能指向一个函数?
- 6. 用指针指向某个地址c#
- 7. 这个指针和成员函数的地址
- 8. 验证函数指针指向函数的地址。 CMockery
- 9. 函数指针地址(C++)
- 10. 函数的两个地址
- 11. 哪一个“这个”是指?
- 12. 程序集地址指向一个地址
- 13. 指针指向哪个数据类型?
- 14. 函数指针指向一个函数指针的函数
- 15. GMail:这个listserv电子邮件地址是哪个电子邮件地址?
- 16. 这个指针数组指向什么?
- 17. 为什么这个搜索函数返回一个指向指针的指针?
- 18. 分割错误。为什么这个指针指向无效地址?
- 19. 使用另一个指针指向地址的指针C
- 20. 从一个函数返回一个数组地址到一个指针(C++)
- 21. 返回一个函数改变指针地址,地址保持不变
- 22. C++通过函数指针指向另一个函数指针
- 23. 在gdb中找到哪个函数导致“地址越界”
- 24. 哪个对象指向“this”?
- 25. 如何定义一个指向端口地址的指针
- 26. 指向一个地址的指针我没想到
- 27. 双指针指向同一个堆领域的随机地址
- 28. 指向一个IP地址的多个域?
- 29. 铸造一个指向浮动或指向一个函数指针参数
- 30. 如何将指针指向的地址分配给另一个本地指针
我拥有的地址是共享库中的一个函数。我猜我需要得到库的基地址并从指针中减去它。获取共享库的基址的最简单方法是什么? – waffleman
您是否尝试过addr2line?它应该追逐由可执行文件引用的共享库并提出一个答案... – Nemo