作者:帅得不敢出门 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