gdb远程调试的一些技巧

作者:帅得不敢出门   c++哈哈堂:31843264  

板子:helper2416  大家应该都知道,调试远程程序可以用gdbserver, 

1 .生成可调试程序

比如一个源文件:main.cpp

交叉编译生成test 加-g生成调试信息.

arm-linux-gcc main.cpp -g -o test 

千万不要strip,否则调试信息就不存在了.


2. gdbserver调试

假设板子IP为192.168.0.19,   pc ip为192.168.0.108

板子上: 

gdbserver 192.168.0.108:2345 ./test

 pc上:

 gdbx86 ./test

gdbx86得自行编译gdb源码生成针对arm平台的程序, This GDB was configured as "--host=i686-pc-linux-gnu --target=arm-linux". 网上可查

连接gdbserver(怎么编译生成它网上有文章)

target remote 192.168.0.19:2345

然后就可以 下断点了, 然后 c 程序开始跑.


1,2两点估计做嵌入式开发的都知道, 3则可能有些人没有遇到过

3  调试远程开发板产生的core 

板子上使能core dump

ulimit -c unlimited

然后跑程序 

./test

如果程序产生core , 不用gdbserver, 直接把core挎到pc上, 然后用上面提到的gdbx86调试它,

gdbx86 ./test  core  


你可能感兴趣的:(gdb远程调试的一些技巧)