符号表
- 编译时添加gcc参数-g,打包内容携带符号表
- 使用
objcopy --only-keep-debug libxxx.so libxxx.so.sym将获取独立的符号表包 - 使用
objcopy --strip-all libxxx.so将清除原包的符号表
CMake
常用关键字
- include_directories: 头文件路径,支持多个头文件目录
- link_directories: 动态链接库文件路径,支持多个目录
- target_link_libraries:动态链接库名,如libcurl.so则使用curl作为名字
gdb
core文件分析
- gdb分析core文件
./gdb -exec=/home/exec_file -core=/opt/coredump/core_file - 在无符号表时,需要在分析core文件是打上符号表
- 使用
info share命令打印出动态连接库的地址信息 - 使用
add-symbol-file xxx.so.sym 0x0000将某个符号表打到对应的动态库上
- 使用
调试
- 使用
gdb attach pid对运行中的进程进行gdb