gdb调试符号文件和程序文件分离的用法
有时候碰到程序有问题时,需要借助gdb来分析,但是直接把带调试信息的elf发布出去又不太合适,这时就需要从中分离符号文件,单独发布strip过的elf文件。使用gdb时,只需要加载符号文件就行了。
首先生成带调试信息的elf文件:
gcc -g3 main.c -o main.dbg
然后从里面剥离出符号新,生成一个符号文件
objcopy --only-keep-debug main.dbg main.sym
再剥离出不带调试信息的程序文件
objcopy --strip-debug main.dbg main.nodbg
此时再使用gdbserver + gdb调试,和平时不同的是额外指定一下符号文件
remote端:
gdbserver :9999 /bin/main.nodbg
host端:
gdb ./main.nodbg -s ./main.sym