Linux 下调试大型C/C++程序对于一般的程序员来说是一件不容易的事情,GDB提供了强大的调试功能及丰富的调试命令,但界面友好性及用户体验不如VS调试工具(PS:很多大牛能把GDB使用的出神入化,在此膜拜下),工欲善其事,必先利其器,本文主要讲解在Windows环境下,使用Eclipse CDT通过GDBServer进行远程调试。
一、要使用的工具
- mingw-get-inst-20120426.exe
- gdb-7.4.1.tar.gz
- eclipse-cpp-indigo-SR2-incubation-win32.zip
二、安装及配置
安装mingw
打开mingw-get-inst-20120426.exe,一路next,在选择组件对话框中选择C compile、C++ compile、MS Baseic System如下图:
minGW编译GDB
- 进入C:\MinGW\msys\1.0运行msys.bat打开minGW模拟环境
- 拷贝gdb-7.4.1.tar.gz到当前用户目录(C:\MinGW\msys\1.0\home\tuxingkai)
- tar zxvf gdb-7.4.1.tar.gz
- cd gdb-7.4.1
- ./configure --target=i686-pc-linux-gnu 这一步很重要,要指定目标机器的类型
- make && make install
安装成功后将C:\MinGW\msys\1.0\local\bin目录下的i686-pc-linux-gnu-gdb.exe拷贝至C:\MinGW\bin目录下
配置Linux下的Samba
配置Linux的Samba服务,以便Windows以可以访问Linux的共享目录,Eclipse建立工程时在共享目录下创建,以达到Windows和Linux下代码共享
编辑/etc/samba/smb.conf文件,在最下方加入如下信息
[Share]
comment = Linux c/c++程序共享目录
path =/home/tuxingkai/Share
writable = yes
read only = no
browsable =yes
valid users = tuxingkai
guest ok =on
#service samba start 启动服务
Windows上映射共享文件夹
使用Eclipse创建C++工程
打开Eclipse,将工作目录切换到Z:\Project下,新建C++工程
选择当前的编译方式为Gnu Make builder
编译HelloWorld工程,eclipse 将会在Debug目录下自动生成makefile文件
在Linux下切换到HelloWorld/Debug目录下,执行make clean;make编译Linux下可执行文件
配置远程调试
Linux服务端启动gdbserver
在eclipse环境下设置“调试配置”
配置完成后,点击Debug就可以远程调试了