当前位置:C++技术网 > 精选软件 > gdb远程调试原理和远程调试gdbserver环境安装

gdb远程调试原理和远程调试gdbserver环境安装

更新时间:2017-03-09 17:27:28浏览次数:1+次

    编程中调试是必不可少的。调试环境就需要提前准备好。有的系统已经安装好了调试环境,有的没有安装。而系统基本是没有安装远程调试环境的。

    不管怎么样,我们都来看看安装情况。

    本地调试也就是在linux系统中写代码,在linux中编译链接,然后在linux中调试运行。而远程调试则是在Windows或其他系统编写代码,然后将代码上传到Linux服务器编译链接和运行。而调试运行在Linux,而调试的动作操作则在Windows或其他系统中。

    不要觉得你用不着远程调试Linux程序,远程调试的应用太常见了。但是对于新手来说,完全不知道怎么回事。

    本地调试就和我们在Windows系统调试一样的,需要的调试器是gdb。而远程调试则会将调试运行和调试控制分布在两个计算机上,所以远程调试的过程就实时的将Linux系统上运行的调试程序的状态实时的传递给调试控制的电脑,一般是Windows。这样,远程调试不仅仅是调试,还有通信的过程。Linux系统里的调试需要一个调试工具来将调试的信息传递出来,这就是gdb-gdbserver的工作。至于控制调试,则是一个通信的客户端。客户端将调试的动作以及从linux传来的调试结果仿真显示在客户端上,就好像你真的是在本机调试一样。

    我相信很可能会用得上远程调试的。我们先说说远程调试应用的场景案例,不是全部。

1.Windows上写Linux代码

    如果你的Linux服务器没有安装可视化界面,而且是正常运营的,你没有办法直接在服务器上的可视化界面做开发。否则占用搞得内存实在是太多了。Linux服务器基本是都不会安装可视化的界面系统。这样你怎么写代码呢?只有在命令行的环境的Vi编辑器里写代码。这样写代码没有问题,然而一个大项目,这样写,你是不是想死了。

    这样,一般的选择就是在Windows上写代码,或者在MAC上写代码,然后上传到Linux系统实现编译调试运行。

2.Windows上写嵌入式(Linux系统)代码

    如果是做嵌入式这类开发,你的设备是Linux系统,但是因为系统的硬件太弱了,很难支持你直接登录嵌入式的Linux系统里写代码来本地调试之类的。一般的做法都是在Windows写好代码,远程调试。


    当然,以上列举的是两个典型的应用场景。其实只要是符合这样的特征的,都会使用远程调试。要实现远程调试,你需要实现以下几点:

1.编写代码支持远程调试的工具

   支持远程调试的工具有很多,其中VS2017、VS的VisualGDB插件都是不错的工具。当然还有其他的工具支持远程调试,我用这两个已经满足要求了,就没有继续探索了。当然,一般最好是IDE就自带了各种功能,编辑器、远程调试控制器等。如果不是IDE,那么可能会用到多个软件组合,比如一个记事本、一个远程调试控制器。VS2017、VS的VisualGDB插件都是我的选择。

2.同步代码到Linux服务器的工具

    代码写好后,要上传到Linux服务器上编译执行。我们需要代码同步工具。我们可以用SVN、Git、FTP、SFTP。只要你能够把代码弄到linux上去,怎么弄都行。如果你使用的是IDE,比如VS2017、VS的VisualGDB插件,那么同步工作都省去了。

3.服务器端安装远程调试工具

    在Linux服务器端,我们需要安装GDB远程调试工具gdb-gdbserver。当然,你要安装gdb和gdb-gdbserver。gdb在linux系统是调试器,gdb调试器会将数据传递给gdb-gdbserver,然后数据会通过gdb-gdbserver和远程调试控制器通信,将调试结果发给远程调试控制器,并从远程调试控制器获取调试的命令,进而传递给gdb执行。

    我们如果不清楚这个原理,以为安装了gdb就行了。或者在安装gdb-gdbserver时将名称写成gdbserver。因为gdbserver还可能和其他基于gdb的调试器配合。gdb-gdbserver是表明是与gdb配合的gdbserver。安装时不要搞错名称了,否则你以为找不到这个安装包。

    gdb-gdbserver安装方法很简单。一般的系统都会自带gdb和gdb-gdbserver的安装包。在Centos系统中,可以通过:


yum info gdb gdb-gdbserver
    来查看软件库里是否有安装包以及这个安装包的安装情况。如果没有显示installed,则可以安装一下。安装使用下面的命令:



yum install gdb gdb-gdbserver
    这样会同时将gdb和gdb-gdbserver都安装上。


   

    以上就将远程调试原理和远程调试环境搭建方法都说了。至于Windows上的IDE的下载和安装、插件的安装(点此查看VS的VisualGDB插件安装方法)(VS2017则不用安装VisualGDB插件)、FTP工具的安装,就不赘述了。