在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去接收和解析指令,详见https://blog.csdn.net/zhaoxd200808501/article/details/77838933。 2)VScode 输入ctrl shift x 在扩展专栏安装Remote Development和C/C ,安装后完毕后产生一个SSH工具和debug工具。
2 建立ssh连接 这里以简单起见,使用密码账号登录。当然也可以使用公钥登录。详解官方文档 1)选择ssh target 2)点击 ,输入 ssh root@IP –A,选择配置文件路径即可 3) 选择连接服务器,右键---connect host in current window,输入相应密码即可连接SSH服务器
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可执行文件,并进行单步,断点等各种调试
5) vscode同样支持attach到某个进程进行在线调试,对线上正在运行的进程进行各种调试和状态查看等