在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://www.cdsy.xyz/computer/programme/compilers/230817/cd45546.html。
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到某个进程进行在线调试,对线上正在运行的进程进行各种调试和状态查看等