vscode在linux下调试c++linux
第一步:须要在vscode扩展中信中下载c/c++的调试插件,如图,搜索c++,第一个就是ios
下载好后重启就能够生效。c++
第二步:vs打开相应的目录,个人测试代码以下:json
其中out目录是生成的文件和so动态库测试
main.cppspa
#include "dlltest.h"插件
#include 调试
using namespace std;code
int main()blog
{
TestDll();
return 0;
}
dlltest.h:
#include
void TestDll();
dlltest.cpp
#include
void TestDll()
{
printf("testDll test\n");
}
makefile
DLLCPP=dlltest.cpp
DLLOBJ=dlltest.o
MAINCPP=main.cpp
MAINOBJ=main.o
LIBNAME=./out/libdlltest.so
MAINEXE=./out/main
$(MAINEXE):$(LIBNAME) $(MAINOBJ)
g++ -g -Wall -o $(MAINEXE) $(MAINOBJ) -L./out -ldlltest -Wl,-rpath=./
$(MAINOBJ):$(MAINCPP)
g++ -g -Wall -c $(MAINCPP)
$(LIBNAME):$(DLLOBJ)
g++ -g -Wall -o $@ $(DLLOBJ) -fPIC -shared
$(DLLOBJ):$(DLLCPP)
g++ -g -Wall -c $(DLLCPP)
clean:
-rm $(DLLOBJ) $(MAINOBJ) $(MAINEXE)
第三步:
在调试菜单中打开gdb launch配置,若是没有则添加
其中配置内容以下:
program:是调试程序所在的目录 ${workspaceFolder}是当前打开的目录路径;
cwd:是运行的cd命令
program项修改成=> ${workspaceFolder}/out/main
cwd项修改成=>${workspaceFolder}/out
以下:
launch.json
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/out/main",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}/out",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
第四步:
点击 查看=>终端,而后在终端中make一下生成相应的程序文件和so文件,最后按F5就能够调试
主要要点:
1.cwd元素值必须设置到须要调试的进程文件目录下
2.若是要调试so文件须要在makefile中加上-rpath路径,以便进程能找到so,或者设置相应的环境变量
3.编译选项必须加上-g,不然调试会有各类异常