debug linux C/C++程序的方法有很多,下面介绍一种在windows下debug linux程序的方法,道理很简单,就是通过gdb提供的client和server的remote debug功能来进行远程调试,windows做gdb客户端,linux做gbd服务器。需要准备的软件如下:
MinGW windows开发环境,主要用它的gcc来编译交叉gdb调试器
一个交叉gdb调试器,跑在windows上,但是target是linux
eclipse和cdt
一个gbdserver,跑在linux上
可选,最好配置smb,这样方便
1 安装MinGW
MinGW是一个很小的GNU windows平台开发环境,包括linux下常见的开发工具,如gcc、gdb、make、autotools等等,具体介绍详见:http://mingw.org/
MinGW的自动安装比较简单,从以下地址下载mingw-get-inst文件,按照提示安装就可以了:http://sourceforge.net/projects/mingw/files/Automated%20MinGW%20Installer/mingw-get-inst/
如果需要手工安装,请参考:http://mingw.org/wiki/InstallationHOWTOforMinGW 的 Manual Installation小节。
最后,MinGW只是GNU windows开发环境的一种,您还可以选择像CYGwin等其他环境。
2 构建交叉gdb调试器
由于我们debug的是linux c应用程序,因此我们需要一个linux C ABI兼容的调试器,也就是说该gdb必须能够解析在linux C应用程序文件(通常是elf文件),
另外,该gdb调试器作为gdb客户端跑在windows机器上,因此运行平台(host)为windows。
安装完MinGW后,我们通过其提供的gcc来构建我们的交叉gdb调试器,其实很简单,步骤如下:
由于我们的build是在windows下,host也是windows,所以这2个参数就不用指定了,直接指定target就可以了: