Как сравнить нм выходы

У меня есть 2 объектных файла, которые должны быть похожи, так как они из 2 разных времен компиляции из одной и той же базы кода. Я хотел сравнить их нм выходы. Однако я не могу, потому что есть много искажения имен. Из-за искажения имени результаты кажутся разными, но на самом деле это не так. Я попробовал следующие шаги, чтобы помочь мне сравнить

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.

Однако в начале все еще есть много искажений имен, которые я не могу удалить, что заставляет меня думать, что нет простого способа сравнить выходные данные нм. Обратите внимание, что меня интересует только искажение начального имени, так как тогда я мог видеть результаты в gvim -d, и я мог бы определить различия вручную. Если есть какой-то прямой инструмент, это будет лучше.

Обратите внимание, что я попытался использовать nm с опцией -C, чтобы показать меня без имени Mangling, но он по-прежнему показывает много искажения имен.

1

Решение

используйте фильтр C ++ для удаления символов как

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]