拷贝之前先更改gdbserver读写权限:chmod 777 gdbserver
4、 gdb+gdbserver调试流程
4.1、编辑测试文件及编译
1)检查串口和网线是否接通 打开串口
打开软件SSH secure shell
开发板ping主机
开发板ping虚拟机
主机ping开发板
虚拟机ping开发板
保证相互之间均可以ping通
2)编辑测试文件test:vim test.c #include
int sum(int x, int y) {
return x+y; }
int main(void) {
int i = 23; int j = 32; int s = 0;
s = sum(i, j);
printf(“s=%d\\n”, s); printf(“hello world\\n”); return 0; }
3)编译:arm-linux-gcc –g test.c –o test
-g : 设置带调试信息的程序
4)修改可执行二进制文件test读写权限:chmod 777 test
4.2、下载可执行二进制文件到开发板
将编译好的可执行文件test拷贝到共享文件,或者拷贝到windows系统里,将test直接由windows系统拖到右边窗口里,即已经将test拷贝到开发板。
4.3、调试
1、在开发板上开启gdbserver
#gdbserver 192.168.1.119:1234 test
192.168.1.119是虚拟机的ip; 1234是端口号 gdbserver开始监听1234端口(你也可以设其他的值)。
2、运行程序:arm-linux-gdb test
这里必须是arm-linux-gdb,否则会出错。
3、进入调试:target remote 192.168.1.9:1234
192.168.1.9 是开发板ip; 致,这样才能进行通信。
端口号1234必须与gdbserver开启的端口号一
4、调试
建立链接后,就可以进行调试了。调试在Host端,跟gdb调试方法相同。注意的是要用“c”来执行命令,不能用“r”。因为程序已经在Target Board上面由gdbserver启动了。结果输出是在Target Board端,用SSH(或超级终端)查看。
命令l:是list的缩写,作用是查看程序代码,未显示完全可敲回车键继续显示。 命令b:是break的缩写,作用是设置断点。例如:b 11表示在代码11行设置断点。
命令c:是continue的缩写,作用是程序继续向下执行。 命令b i:即break info作用是查看所有断点。 当程序结束时可用命令q退出调试。