动态库符号
nm使用
1 | nm /opt/homebrew/opt/qt/lib/QtSvg.framework/QtSvg -UCg | grep QSvgRenderer |
-U 已定义符号 导出
-u 未定义符号 导入
-C C++符号名称解析
-g 全局符号
nm/llvm-nm 不接受MSVC格式 接受MinGW格式
llvm-objdump/llvm-undname
1 | dumpbin /exports Qt5Svg.dll > exports.txt |
llvm-undname不能对文件使用
llvm-undname/llvm-cxxfilt可跨平台使用
1 | llvm-undname ?save@QPainter@@QEAAXXZ |
动态库依赖分析
linux
1 | # ldd/readelf |
macOS
1 | otool -L |
windows
1 | dumpbin /dependents |
linux
1 | objdump -p /path/to/program | grep NEEDED |
macOS
1 | objdump -p program | grep LC_LOAD_DYLIB -A2 | grep name | awk '{print $2}' | sort -r |
1 | objdump -a mach |
misc
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 WuRui!
评论