我是一名 MSVC 用户,最近我使用带有 GCC 和 Clang 的 Linux。 我为 MSVC 链接器映射文件制作了一个解析器,以提取一些函数及其参数和返回类型。但我意识到 gcc 映射文件不会生成函数损坏的名称和返回类型以及属性类型。
0x00000000000069c0 _CodeBlockID_::OnEventTrigger(int) // Function
0x000000000007a1c8 _CodeBlockID_::__prop_eventID // Property
我需要解析和提取这个函数,就像我从 MSVC 生成的地图文件中所做的那样。
我在网上搜索并没有找到任何有用的信息。
无论如何都要强制链接器生成损坏的函数和属性,或者我是否需要使用替代方法来愚弄数据,例如从调试符号或使用 readelf?
我要结束这个问题,因为经过几个小时的研究,我发现提取信息的唯一方法是通过 DWARF 层次结构,这是非常困难和复杂的。 GCC 不提供修饰名称的返回类型。