编程中调试是必不可少的。调试环境就需要提前准备好。有的系统已经安装好了调试环境,有的没有安装。而系统基本是没有安装远程调试环境的。
不管怎么样,我们都来看看安装情况。
本地调试也就是在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插件都