gdb vscode 不进入断点_vscode不能命中断点如何解决

vscode不能命中断点如何解决?

vscode c++ 编译生成后,调试时无法命中断点的解决办法//test.cpp

#include

int g_var = 0;

void print_line(char *str)

{

if (str != NULL)

printf("%s\r\n", str);

else

printf("null string\r\n");

}

int main (int argc, char **argv)

{

int l_var = 1;

print_line("hello world!");

printf("g_var = %d, l_var = %d.\r\n", g_var, l_var);

return 0;

}

launch.json{

"version": "0.2.0",

"configurations": [

{

"name": "(gdb) Launch",

"type": "cppdbg",

"request": "launch",

"program": "${workspaceRoot}/test.exe",

"args": [],

"stopAtEntry": false,

"cwd": "${workspaceRoot}",

"environment": [],

"externalConsole": true,

"MIMode": "gdb",

"miDebuggerPath": "C:\\MinGW\\bin\\gdb.exe",

"setupCommands": [

{

"description": "Enable pretty-printing for gdb",

"text": "-enable-pretty-printing",

"ignoreFailures": true

}

]

}

]

}

tasks.json{

// See https://go.microsoft.com/fwlink/?LinkId=733558

// for the documentation about the tasks.json format

"version": "2.0.0",

"tasks": [

{

"taskName": "test",

"type": "shell",

"command": "g++",

"args": ["-g", "${file}", "-o", "${workspaceRoot}/test.exe"]

}

]

}

编译成功后,在源码中设置断点,却无法命中断点。

后来查看官方c++编译调试文档和尝试,在launch.json文件的"setupCommands": [

{

"description": "Enable pretty-printing for gdb",

"text": "-enable-pretty-printing",

"ignoreFailures": true

}

]

后面加上

"preLaunchTask": "test" 配置,调试时就可以正常命中断点了。

注意:别忘了"setupCommands"的中括号’ ] ‘后面加上一个逗号。


版权声明:本文为weixin_35755188原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。