我正在调试一个开源库,它有一个在加载时初始化的结构。 struct的一个成员是一个函数指针。什么是最快的方式来确定它指向哪个功能?例如,如果我打印出函数指针的值,是否有一些工具可以用来查找函数的名称?我在嵌入式Linux系统上执行此操作,但尚未提供GDB。
答案 0 :(得分:5)
链接器可以输出映射文件。假设您的功能无法移动,您可以在那里查找地址。生成地图文件的选项可能有所不同;在我的Mac上-map
,Linux man page表示它是-Map
。
除了一点编辑之外,如果你没有一个有效的源代码级调试解决方案,那么第一个你要做的就是获得一个。停止所有其他工作,直到您拥有适合开发的基础架构。你可能不得不努力说服管理层说这很重要,但希望你能让他们理解。
答案 1 :(得分:1)
我认为你会发现addr2line command很有用。