linux 调试cpp,linux下 visual studio code调试c++

vscode在linux下调试c++linux

第一步:须要在vscode扩展中信中下载c/c++的调试插件,如图,搜索c++,第一个就是ios

f54a0c11cdd6af5e5460707e5fbacd8b.png

下载好后重启就能够生效。c++

第二步:vs打开相应的目录,个人测试代码以下:json

其中out目录是生成的文件和so动态库测试

6b8849b5d3996435a8e43846ea7e713f.png

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,不然调试会有各类异常

64d51567263eaf15cd274057b945eba2.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值