如何比较nm输出

How to compare nm outputs

本文关键字:nm 输出 比较 何比较      更新时间:2023-10-16

我有两个对象文件,它们应该是相似的,因为它们来自同一代码库的两个不同编译时间。我想比较一下他们的纳米输出。然而我不能,因为有很多名字被篡改。由于名称混乱,结果似乎有所不同,但实际上并非如此。我尝试了以下步骤来帮助我比较

1) took last word using command
sed '/ /s/.* //' nmfile1 >nmfile1_lastword
2) removed _Z.. starting word with nothing 
sed 's/^_Z...//' nmfile1_lastword > nmfile1_lastword_removed_z
3) sorted the same 
sort nmfile1_lastword_removed_z > nmfile1_lastword_removed_z_sorted

我也为第二个nmFile2做了上述操作。

然而,一开始仍然有很多名称混乱,我无法消除,这让我认为没有简单的方法来比较nm输出。请注意,我只关心起始名称的篡改,因为这样我就可以在gvim-d中看到结果,并且我可以手动识别差异。如果有一些直接的工具,那将是最好的。

请注意,我试着使用选项-C的nm来显示我没有名字的名字,但它仍然显示了很多名字的名字。

使用c++filt将符号分解为

nm xxx.so | c++filt > compare1.txt
nm xxx.so | c++filt > compare2.txt