vscode在linux下調試c++linux
第一步:須要在vscode擴展中信中下載c/c++的調試插件,如圖,搜索c++,第一個就是ios
下載好後重啓就能夠生效。c++
第二步:vs打開相應的目錄,個人測試代碼以下:json
其中out目錄是生成的文件和so動態庫測試
main.cppspa
#include "dlltest.h"插件 #include <iostream>調試 using namespace std;code int main()blog { TestDll(); return 0; } |
dlltest.h:
#include <stdio.h> void TestDll(); |
dlltest.cpp
#include <stdio.h> 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,不然調試會有各類異常