Linux 下调试大型C/C++程序对于一般的程序员来说是一件不容易的事情,GDB提供了强大的调试功能及丰富的调试命令,但界面友好性及用户体验不如VS调试工具(PS:很多大牛能把GDB使用的出神入化,在此膜拜下),工欲善其事,必先利其器,本文主要讲解在Windows环境下,使用Eclipse CDT通过GDBServer进行远程调试。
一、要使用的工具
二、安装及配置
安装mingw
打开mingw-get-inst-20120426.exe,一路next,在选择组件对话框中选择C compile、C++ compile、MS Baseic System如下图:
minGW编译GDB
安装成功后将C:\MinGW\msys\1.0\local\bin目录下的i686-pc-linux-gnu-gdb.exe拷贝至C:\MinGW\bin目录下
提示出错(Cannot run program "make": Launching failed)。于是去MinGW的安装目录C:\MinGW\bin下将mingw32-make.exe复制成make.exe即可
配置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就可以远程调试了
Windows XP下MinGW的安装与配置
到http://sourceforge.net/projects/mingw/ 手动去下载最新的MinGW,或使用MinGW-5.1.4.exe,自动下载。但后者往往不能下载到最新的稳定包。
1、手动下载说明,参见:http://www.mingw.org/wiki/HOWTO_Install_the_MinGW_GCC_Compiler_Suite
可从:http://sourceforge.net/projects/mingw/ 选择包下载。
2、运行 MinGW-5.1.4.exe 的话,选择 Candidate,一般会下载最新的包,选择如下几项:
MinGW base tools
g++ compiler
MingGW Make
默认路径C:\MinGW,我装在 D:\cplusplus\mingw
根据:http://wiki.codeblocks.org/index.php?title=MinGW_installation,需要下载如下必要的包:
* http://prdownloads.sf.net/mingw/gcc-core-3.4.5-20060117-1.tar.gz
* http://prdownloads.sf.net/mingw/gcc-g++-3.4.5-20060117-1.tar.gz
* http://prdownloads.sf.net/mingw/mingw-runtime-3.9.tar.gz
* http://prdownloads.sf.net/mingw/mingw-utils-0.3.tar.gz
* http://prdownloads.sf.net/mingw/w32api-3.6.tar.gz
* http://prdownloads.sf.net/mingw/binutils-2.17.50-20060824-1.tar.gz
* http://prdownloads.sf.net/mingw/mingw32-make-3.81-1.tar.gz
另外一个是调试器:
* http://prdownloads.sf.net/mingw/gdb-6.3-2.exe
安装完后就配置环境变量吧。
控制面板--〉系统--〉系统详细设置--〉环境变量
MINGW_PATH=E:\MinGW
LIBRARY_PATH=%MINGW_PATH%\lib;%MINGW_PATH%\lib\gcc\mingw32\4.6.2;
C_INCLUDE_PATH=%MINGW_PATH%\include%MINGW_PATH%\lib\gcc\mingw32\4.6.2\include;
CPLUS_INCLUDE_PATH=%MINGW_PATH%\include%MINGW_PATH%\lib\gcc\mingw32\4.6.2\include\c++;%MINGW_PATH%\lib\gcc\mingw32\4.6.2\include\c++\backward;%MINGW_PATH%\lib\gcc\mingw32\4.6.2\include\c++\mingw32;
PATH=%MINGW_PATH%\bin;%MINGW_PATH%\libexec\gcc\mingw32\4.6.2