一、什么是debug及编译型语言和解释型语言
debug是调试程序的功能、变量、逻辑,然后根据debug的情况来调整我们的程序。然而不同语言的dubug是不一样的,一般区分为编译型语言和解释型语言,编译型语言比如C++/C及Java等,其程序是编译成一个可执行程序后再执行。而解释型语言,如Python是一条一条语句执行。可以看出Python的调试比C/C++的简单得多。可以直接在IDE上进行调试。而C++等语言需要gdb等工具才可以调试,然而命令行的gdb调试不是很直观,本文使用vscode远程调试Linux上的开发机程序。
二、配置
需要使用 VS Code 的 Remote Development 扩展来连接到远程服务器并设置远程调试环境,以便在本地使用 VS Code 进行远程调试。以下是一个简单的示例:
1、在远程服务器上安装 C++ 编译器和 GDB 调试器:
sudo apt-get update
sudo apt-get install build-essential gdb
yum install gdb-gdbserver
2、在远程服务器上编写并编译一个简单的 C++ 程序,例如:
#include
#include
using namespace std;
void test(){
static int num;
num++;
}
int main(){
thread t1(test);
thread t2(test);
t1.join();
t2.join();
return 0;
}
4、在本地安装 VS Code 和 Remote Development 扩展,并打开 VS Code。
5、在 VS Code 中按下 F1 键,输入“Remote-SSH: Connect to Host”并选择一个远程服务器。
6、输入 SSH 用户名和密码或者 SSH 密钥,连接到远程服务器。
7、在 VS Code 中按下 F5 键或者选择“Run”->“Add Configuration…”->“C++”来创建一个 C++ 调试配置文件。
8、修改调试配置文件launch.json,设置程序路径和调试器类型:
{
"version": "0.2.0",
"configurations": [
{
"name": "Remote C++ Debug",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/a.out",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"miDebuggerPath": "/usr/bin/gdb",
"miDebuggerServerAddress": "localhost:2345"
}
]
}
**注意:**把配置文件中program项的${workspaceFolder}/a.out改为Linux上程序的目录,如我机器上的调试程序目录为/root/2023_study/C++_code/test。
其中,“program”字段应该设置为可执行文件的路径,比如本例中的“a.out”;“miDebuggerPath”字段应该设置为远程服务器上的 GDB 路径;“miDebuggerServerAddress”字段应该设置为运行 GDB 服务器的地址和端口号。
8、在远程服务器上运行 GDB服务器
gdbserver :2345 ./a.out
其中,“2345”是端口号,“./a.out”是可执行文件路径。
在 VS Code 中按下 F5 键或者选择“Run”->“Start Debugging”来开始远程调试。
在调试过程中,可以使用 VS Code 中的调试工具和窗口查看变量值、调用栈和代码执行流程等信息。需要注意的是,远程调试需要确保网络连接稳定和服务器配置良好,同时需要考虑程序运行时的状态和调试方法,以便快速解决问题。
三、结果展示
以下是 Visual Studio Code 中常用的调试快捷键:
启动调试(Start Debugging):F5
停止调试(Stop Debugging):Shift + F5
继续(Continue):F5
单步跳过(Step Over):F10
单步进入(Step Into):F11
单步跳出(Step Out):Shift + F11
断点开关(Toggle Breakpoint):F9
条件断点(Add Conditional Breakpoint):Ctrl + Shift + B
行断点(Add Inline Breakpoint):Ctrl + Shift + F9
快速重启(Restart):Ctrl + Shift + F5
进入/退出全屏调试(Enter/Exit Full Screen):Ctrl + Shift