赞
踩
键盘输入 ctrl+shift+p ,选择 CMake:Build
查看 build 文件夹下是否生成了可执行文件(如果代码内容有改动,需要重新 make 编译;或重复上一步操作)
进入 Run > Start Debugging > C++ (GDB/LLDB)
打开 launch.json 文件
修改 program 后可执行程序的路径,此时即可调试+编译
{ // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "(gdb) Launch", //名称 "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/build/main", //当前目录下编译后的可执行文件 "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", //表示当前目录 "environment": [], "externalConsole": false, // 在vscode自带的终端中运行,不打开外部终端 "MIMode": "gdb", //用gdb来debug "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ], // "preLaunchTask": "make" //在执行debug hello world前,先执行build hello world这个task } ] }
相关解释:
args后面填写可执行程序需要的参数
把"stopAtEntry"设置为"true"可以在主函数处停止
把"externalConsole"设置为"true"可以调用系统的终端
进入 Run > Start Debugging > 选择 Default configuration
打开 launch.json 文件
选择:Add Configuration
(gdb) launch 终端中先进入gdb 再启动程序,(gdb) Attach 程序已经启动,然后将gdb附加上开始调试工作:一般用于程序跑着跑着想知道在哪、多线程中,需要终端中已经在运行可执行文件过程中了
{ // Use IntelliSense to learn about possible attributes. 使用智能感知了解相关属性:鼠标停靠在下面这些参数上会提示对应功能 // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "(gdb) Launch", // 只是个显示的名称,没用 "type": "cppdbg", "request": "launch", // 启动类型:选择先启动gdb再调试 "program": "${workspaceFolder}/build/main", // 需要调试的可执行文件 "args": [], // 程序执行传入 main()的args参数 "stopAtEntry": false, "cwd": "${fileDirname}", // 表示当前目录 "environment": [], "externalConsole": false, // 在vscode自带的终端中运行,不打开外部终端 "MIMode": "gdb", // 用gdb来debug "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true }, { "description": "Set Disassembly Flavor to Intel", "text": "-gdb-set disassembly-flavor intel", "ignoreFailures": true } ] // "preLaunchTask": "make" //在执行debug hello world前,先执行build hello world这个task } ] }
WATCH:监视区,gdb中的监视某个变量功能(在变量上右击,选择:add to watch)
CALL STACK:堆栈区,显示程序调用的每一层
BREAKPOINTS:这里可以在调试过程中直接添加断点
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。