1
我的Xcode工作区中存在递归git子模块的问题。我认为llvm正在拾取错误的.m文件。查询.o文件符号
我想通过显示对象二进制文件中提供的方法来确认这一点。
我知道我可以使用ar -t myarchive.a
在静态库中显示.o
文件。有什么方法可以更深入地钻取并显示特定.o上可用的方法符号?
我的Xcode工作区中存在递归git子模块的问题。我认为llvm正在拾取错误的.m文件。查询.o文件符号
我想通过显示对象二进制文件中提供的方法来确认这一点。
我知道我可以使用ar -t myarchive.a
在静态库中显示.o
文件。有什么方法可以更深入地钻取并显示特定.o上可用的方法符号?
使用可以使用nm
命令来显示.o
或.a
文件中的符号。有关详细信息,请参阅nm
manpage。
$ nm build/IoEvent.o
(裁剪)
---------------- T __ZN9ChessCore18ChessCoreExceptionC1EPKcz
---------------- T __ZN9ChessCore18ChessCoreExceptionD0Ev
---------------- T __ZN9ChessCore18ChessCoreExceptionD1Ev
---------------- D __ZN9ChessCore7IoEvent11m_classnameE
---------------- T __ZN9ChessCore7IoEvent3setEv
---------------- T __ZN9ChessCore7IoEvent5resetEv
---------------- T __ZN9ChessCore7IoEventC1Ei
---------------- T __ZN9ChessCore7IoEventC1Ev
---------------- T __ZN9ChessCore7IoEventC2Ei
---------------- T __ZN9ChessCore7IoEventC2Ev
---------------- T __ZN9ChessCore7IoEventD0Ev
---------------- T __ZN9ChessCore7IoEventD1Ev
---------------- T __ZN9ChessCore7IoEventD2Ev
---------------- T __ZNK9ChessCore18ChessCoreException4whatEv
如果您正在使用C++(我知道你不是),那么你可以使用c++filt
来还原函数的符号名:
$ c++filt __ZN9ChessCore7IoEvent5resetEv
ChessCore::IoEvent::reset()
精湛的感谢为了这! –