2013-09-25 76 views
1

我的Xcode工作区中存在递归git子模块的问题。我认为llvm正在拾取错误的.m文件。查询.o文件符号

我想通过显示对象二进制文件中提供的方法来确认这一点。

我知道我可以使用ar -t myarchive.a在静态库中显示.o文件。有什么方法可以更深入地钻取并显示特定.o上可用的方法符号?

回答

1

使用可以使用nm命令来显示.o.a文件中的符号。有关详细信息,请参阅nmmanpage

$ 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() 
+0

精湛的感谢为了这! –