我的 Xcode 工作区中的递归 git 子模块存在问题。我认为 llvm 选择了错误的 .m 文件。
我想通过显示对象二进制文件中可用的方法来确认这一点。
我知道我可以ar -t myarchive.a
用来显示.o
静态库中的文件。有没有办法深入挖掘并显示特定 .o 上可用的方法符号?
我的 Xcode 工作区中的递归 git 子模块存在问题。我认为 llvm 选择了错误的 .m 文件。
我想通过显示对象二进制文件中可用的方法来确认这一点。
我知道我可以ar -t myarchive.a
用来显示.o
静态库中的文件。有没有办法深入挖掘并显示特定 .o 上可用的方法符号?
使用可以使用nm
命令来显示.o
或.a
文件中的符号。有关详细信息,请参见nm
手册页。
$ 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()