linux gdb网络调试,VS2017创建Linux项目实现远程GDB调试

第一步:正版VS2017exe安装器下载。

下载链接:http://download..net/detail/fanyun_01/9787333

第二步:VS2017安装,下载好安装器,点击运行,选择自己所需要的安装配置,在这我们选择,点击安装,差不多十几分钟可以安装完。

第三步:安装完,启动VS2017,新建一个linux工程,如下图所示:

d9867f6381fca9e6f9ce2c4733dc8232.png

第四步,会弹出一个对话框,点击确认,设置远程服务器配置,如下所示:

7276729253bd2821c775f287561f6854.png

3705db6f29ded6ae2f4cdba9ff301f53.png

如果安装了杀毒软件和防火墙,会弹出一个对话框,点击允许就可以了。

第五步:编译,如果服务器都配好了,点击编译就可以进入GDB调试断点,如果服务器环境没有配置好,则需要配置linux服务器环境。

一般报错有以下几种:

(1). unrecognized command line option"-std=c++11"

一种原因是工程配置不对,如下图配置工程即可,另外一种原因就是,你的linux服务器不支持c++11,这时,需要,升级你的linux服务器编译器,一般需要gcc-g++4.8以上版本,具体升级过程如下:

1.如有安装过先卸载gdb旧版本

rpm -qa | grep gdb

rpm -e --nodeps gdb-7.2-60.el6_4.1.i686

2. 安装Texinfo文档系统

yum install ncurses-devel

3. 下载gdb7.6.1源码包

http://ftp.gnu.org/gnu/gdb/gdb-7.6.1.tar.gz

将源码包放在home目录的Download目录中

4. 解压缩gdb7.6.1源码包

cd /root/Downloads/

tar -zxvf gdb-7.6.1.tar.gz

5. 生成makefile

cd /root/Downloads/gdb-7.6.1

./configure

make

sudo make install

6. 将编译好的gdb拷贝到/usr/bin目录中

sudo cp /root/Downloads/gdb-7.6.1/gdb/gdb/usr/bin/gdb

7. 查看安装是否成功。

gdb –v

0b8c3546bd91709bb7b6f2f0e0ec9016.png

(2).无法启动gdb-server,如下图所示:

a81c6899f64b36d62fc0eb2f47fbd2e2.png

下载gdb-7.6.1 tar.gz(http://www.gnu.org/software/gdb/download/)

解压gdb-7.6.1.tar.gztar -zxvf gdb-7.6.1.tar.gz

这时,则说明linux服务器没有安装gdb-server,安装过程如下:

下载gdb:如果放到了/home/cby目录:

#cd /home/cby

#tar zxvf gdb-7.6.1.tar.gz

#cd gdb-7.6.1

#./configure --target=arm-linux --prefix=/home/cby/arm-gdb

#make

#make install

然后建立gdbserver:

#mkdir /home/cby/gdbserver

#cd ../gdbserver

#chmod +x /home/cby/gdb-7.6.1 /gdb/gdbserver/configure

#CC=arm-linux-gcc ../gdb-7.6.1 /gdb/gdbserver/configure /

--host=arm-linux  --prefix=/home/cby/gdbserver

#make

#make install

#arm-linux-strip gdbserver

#cp gdbserver /tftpboot

调试步骤:

1、交叉编译,带参数-gstabs 或 -g 加入调试信息。

假设要调试的程序为hello.c。

#arm-linux-gcc -g hello.c -o hello

2、在Target Board开启gdbserver

#gdbserver  :22 hello   (我的host-ip是118.190.81.4)

gdbserver开始监听22端口(你也可以设其他的值),然后启动hello,你会看到“Process test created:pid=88”

3、回到Host端

#export PATH=$PATH:/home/cby/arm-gdb/bin(arm-linux-gdb的路径)

#arm-linux-gdb hello

最后一行显示:This GDB was configured as “--host=i686-pc-linux-gnu,--target=arm-linux”...

说明此gdb在X86的Host上运行,但是调试目标是ARM代码。

(gdb)target remote :22   (我的target-board-ip is 118.190.81.4)

注意:你的端口号必须与gdbserver开启的端口号一致,这样才能进行通信。

建立链接后,就可以进行调试了。调试在Host端,跟gdb调试方法相同。注意的是要用“c”来执行命令,不能用“r”。因为程序已经在Target Board上面由gdbserver启动了。结果输出是在Target Board端,用超级终端查看。

安装完后,检查gdb-server的版本:

#:rpm -qa | grep gdb

6ff78d2f5d964119965a2df14b9eccfd.png

IT技术交流群:62775887

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值