我通过“nm”查看编译的应用程序的函数 - 我需要找到一个地址来为“send()”函数设置断点。问题是,该函数对应于“nm”的输出,其 VMA 等于 0,并且该地址将来不会更改,如“A”标记所示:
00000000 A _send@16
我想知道,这意味着什么?遗嘱实际上被映射到哪里send()
?可能有用的注释:二进制文件是使用 MinGW 编译的 PE 应用程序。
答案1
只是为了更新,看看这个。地址为 0 的函数应该是定义该函数的原始目标文件中的地址 0。我正在使用的库恰好在单独的文件中定义了许多函数,因此许多重要的函数似乎都有 0x0 作为他们的地址。如果添加-o
到命令行,它应该读出每个符号的原始目标文件名。
https://stackoverflow.com/questions/1863613/what-does-symbol-value-from-nm-command-mean