gdbsever在嵌入式里如何使用
1.芯片开发商的toolchain里面会提供一个gdb的编译工具
2.用这个gdb编译工具来编译自己的nostrip程序,要在gcc的时候加上 -g
3.用usb网卡连接设备,配置好虚拟机和板子上的网络通讯
设备端配置ip
insmod_rndis & //安装君正的网卡驱动,这个看你芯片厂商了
telnetd & //telnetd拉起来
ifconfig usb0 192.168.33.99 up //配置网卡ip
route add default gw 192.168.33.1 //配置网关
虚拟机配置ip
这样就配置好了,然后可以试一下ping设备,注意设置的ip是要同一网段
4.将芯片厂的gdbsever工具烧录到你的设备板子上
5.板子上先别跑你自己的程序,或者先把你程序kill掉,用gdbsever启动你的程序
gdbsever 192.168.33.200:1234 your_main
6.虚拟机上用gdb跑你的程序
gdb your_main
7.如果出现no debug symbol found表示你的程序是被strip过了
8.gdb里设置你的动态库,多个路径中间可以用:隔开
set solib-search-path /home/lib1:/home/lib2
9.gdb远程监听你的设备
target remote 192.168.33.99:1234
10.你的板子应该就会看到提示你的设备被虚拟机的端口监听了
11.虚拟机gdb里敲c,这时候板子上的程序就会跑起来了
CoreDump和nfs在嵌入式里如何使用
1.先要把你的板子和虚拟机ping通
2.编译的程序是nostrip的,编译的时候加上 -g
3.通过ulimit 设置core文件大小不受限制
ulimit -c unlimited
4.设备端创建nfs路径
mkdir -p /tmp/nfs
5.设备端挂载nfs路径到虚拟机上
mount -o nolock 192.168.33.200:/home/liwp/nfs /tmp/nfs
6.指定coredump的生成路径
echo 1 > /proc/sys/kernel/core_uses_pid
echo “/tmp/nfs/core.%t.bin” > /proc/sys/kernel/core_pattern