在Linux上通常使用gdb命令行调试,但该方式调试不太直观,且命令行长时间不用,容易忘记,不如GUI直观和容易上手,下面介绍基于GUI的方式调试Linux。

一.Linux调试GUI方案简介
1)    Visual studio 远程调试Linux
     在VS2015版本以后Visual studio就支持Linux的编译和调试。使用熟悉的windows界面开发和调试Linux,极大的提高了开发效率,可以广泛应用的Linux服务器开发和嵌入式Linux开发。 遗憾的是该方式需要基于VS工程来调试,旧的项目是基于Makefile的工程,VS不能调试Makefile工程,通过工具将Makefile工程转VS工程,然后用VS来调试,详见https://github.com/robotdad/vclinux。
2)    基于eclipse 本地调试Linux
         因为eclipse是跨平台的,安装一个带GUI的linux系统,就可以像VS一样开发和调试Linux
3)  基于QtCreator 本地调试Linux
        因为QtCreator是跨平台的,安装一个带GUI的linux系统,就可以像VS一样开发和调试
4)    基于eclipse 远程调试Linux
        gdb+gdbserver方式,远程有一个gdbserver,本地机器通过网络发指令给gdbserver完成调试
5)    基于QtCreator远程调试Linux
        gdb+gdbserver方式,远程有一个gdbserver,本地机器通过网络发指令给gdbserver完成调试
6)    基于vscode远程调试Linux
      该方法支持调试Linux程序,不要编译器参与,可以完美的将Makefile工程简单的接管起来调试,可以是基于ssh+vscode方式或者gdb+vscode+gdbserver方式。本文重点介绍该ssh+vscode方法的使用。

二.基于vscode ssh远程调试Linux实战

1   软件安装
1)服务器安装gdb
注意我们是ssh+vscode方式,没有用到gdbserver,故不需要安装gdbserver。
gdb+gdbserver方式,在宿主机还需要安装一个交叉编译的gdb,目标机起一个gdbserver去接收和解析指令,详见。
2)VScode 输入ctrl+shift+x
 在扩展专栏安装Remote Development和C/C++,安装后完毕后产生一个SSH工具和debug工具。     

linux系统vscode可以写Python吗 vscode for linux_Linux调试

2 建立ssh连接
       这里以简单起见,使用密码账号登录。当然也可以使用公钥登录。详解官方文档
         1)选择ssh target
         2)点击+,输入 ssh root@IP  –A,选择配置文件路径即可
        3) 选择连接服务器,右键---connect host in current window,输入相应密码即可连接SSH服务器

linux系统vscode可以写Python吗 vscode for linux_VScode_02

3   配置debug 参数,并进行调试
        1) 点击debug工具栏,选择Open a file用来指定远程服务器debug源文件
即选择远程服务器的debug文件,指定目录和源文件。如C/C++文件
       2)选择远程配置文件目录,并创建默认的launch.json文件
       3) 修改配置文件
         

1.可执行文件路径
             "program": "${workspaceFolder}/hello",
             2.在main入口断点住
              "stopAtEntry": true,


     4) 选择gdb launch 调试器,就可以启动远程的hello可执行文件,并进行单步,断点等各种调试

linux系统vscode可以写Python吗 vscode for linux_VScode_03

5) vscode同样支持attach到某个进程进行在线调试,对线上正在运行的进程进行各种调试和状态查看等