gpt4 book ai didi

c++ - objdump 输出中符号名称的组成部分

转载 作者:太空宇宙 更新时间:2023-11-04 12:48:11 28 4
gpt4 key购买 nike

我正在尝试使用 objdump 比较二进制文件的两个不同版本,想知道是否有人知道如何从我的 objdump 输出的以下行中解释符号名称:

102b33bc l     O .rodata    00000058 ThisIsMyStruct::ThisIsMyStruct()::C.24

此输出是使用以下命令生成的:

objdump -t -C -r -w --special-syms my.bin > my.bin.txt

我的问题是两个不同版本的 my.bin 有同一行,但一个在末尾有 C.24,另一个在末尾有 C.12。

C.# 代表什么?

谢谢!

最佳答案

它代表你的编译器想要它代表的任何东西。 Symbol name mangling完全是特定于编译器的,甚至会随着编译器的版本而变化。就在前几天,当某些 gcc 编译器选项也导致不同的符号重整时,我感到很惊讶。那很有趣。

搜索 http://gcc.gnu.org似乎没有找到任何有关 gcc 名称修改的文档。一般的 Google 搜索也不是很有启发性。

关于c++ - objdump 输出中符号名称的组成部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38075902/

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