vscode插件之C/C++

1、给C/C++调试器配置launch.json
launch.json用于在VS Code中配置调试器;带着关于生成器几乎所有需要的信息。需要将用于计划调试的可执行文件的路径填充在program字段;必须在launch和attach配置信息中填充。
生成的文件包含两个部分,一个为launch配置调试,一个为attach配置调试。
2、配置VS Code的调试行为
- 调试期间可以通过设置和改变下列选项来控制VS Code的行为:
program:指定执行debugger的完整路径。
symbolSearchPath:告诉windows调试器搜索
.pdb文件的路径。如果有多个路径,则用分号分开,例如:C:\\Symbols;C:\\SymbolDir2。additionalSOLibSearchPath:告知GDB或者LLD去搜索
.so文件的路径。如果有多个路径,用;隔开。GDB:UNIX及UNIX-like下的调试工具。
LLDB:LLDB是个开源的内置于XCode的具有REPL(read-eval-print-loop)特征的Debugger,其可以安装C++或者Python插件。LLDB是个开源的内置于XCode的具有REPL(read-eval-print-loop)特征的Debugger,其可以安装C++或者Python插件。
externalConsole
windows:如果设置为
True,它将生成外部控制台;如果设置为false,则将会使用VS Code的集成终端;Linux:如果设置为
True,它将通知VS Code去生成一个外部控制台;如果设置为false,则将会使用VS Code的集成终端;
avoidWindowsConsoleRedirection:为了在Windows上支持VSCode与gdb的集成终端,扩展将控制台重定向命令添加到debuggee的参数中,以便在集成终端中显示控制台输入和输出。将此选项设置为
true将禁用它。logging:可选标志,以确定应该将哪些类型的消息记录到调试控制台。
exceptions:默认为
true,确定是否应该将异常消息记录到调试控制台。moduleLoad:默认为
true,确定是否应该将模块加载事件记录到调试控制台。programOutput:默认为
true,确定是否应该将程序输出记录到调试控制台。engineLogging:默认为
false,确定是否应该将诊断引擎日志记录到调试控制台。trace:默认为
false,确定是否应该将诊断适配器命令跟踪记录到调试控制台。traceResponse:默认为
false,确定是否应该将诊断适配器命令和响应跟踪记录到调试控制台。
visualizerFile:调试时
.natvls文件将被使用。showDisplayString:当指定visualizerFile时,showDisplayString将启用显示字符串,打开此选项会导致调试期间性能下降。
举例:
{
"name": "C++ Launch (Windows)",
"type": "cppvsdbg",
"request": "launch",
"program": "C:\\app1\\Debug\\app1.exe",
"symbolSearchPath": "C:\\Symbols;C:\\SymbolDir2",
"externalConsole": true,
"logging": {
"moduleLoad": false,
"trace": true
},
"visualizerFile": "${workspaceRoot}/my.natvis",
"showDisplayString": true
}
3、配置目标应用
下列选项可让你在目标应用程式启动时修改其状态:
args:启动程序时传递给程序的命令行参数的JSON数组。例如 ["arg1", "arg2"],如果要转义字符,则需要对其进行两次转义。例如["{\"arg\": true}]将向您的应用程序发送{"arg1": true}。
cwd:设置调试器启动的应用程序的工作目录。
enviroment:要添加到程序环境中的环境变量。
举例:
{
"name": "C++ Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceRoot}/a.out",
"args": ["arg1", "arg2"],
"environment": [{"name": "squid", "value": "clam"}],
"cwd": "${workspaceRoot}"
}
4、自定义GDB或者LLDB
下列选项可让你改变GDB或者LLDB的行为:
MIMode:指示VS代码将连接到的调试器。必须设置为gdb或lldb。这是根据每个操作系统预先配置的,可以根据需要进行更改。
miDebuggerPath:调试器(如gdb)的路径。当只指定可执行文件时,它将为调试器搜索操作系统的路径变量(Linux和Windows上的GDB, OS X上的LLDB)。
miDebuggerArgs:传递给调试器的其他参数(如gdb)。
stopAtEntry:如果设置为true,调试器应该在目标的入口点停止(在附加时忽略)。默认值为false。
setupCommands:要执行的命令的JSON数组,以便设置GDB或LLDB。例如:"setupCommands": [{"text": "target-run", "description": "run target", " ignorefailure ": false}]
customLaunchSetupCommands:如果提供了,这将用一些其他命令替换用于启动目标的默认命令。例如,这可以是“-target-attach”以便附加到目标进程。空命令列表将用空命令替换启动命令,如果将启动选项作为命令行选项提供给调试器,这将非常有用。例如:“customLaunchSetupCommands”:[{“text”:“target-run”,“description”:“run target”,“ignorefailure”:false}]。
launchCompleteCommand:调试器完全设置好后要执行的命令,以便使目标进程运行。允许的值是“执行器运行”、“执行器继续”、“None”。默认值是“execl -run”。
举例:
{
"name": "C++ Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceRoot}/a.out",
"stopAtEntry": false,
"customLaunchSetupCommands": [
{ "text": "target-run", "description": "run target", "ignoreFailures": false }
],
"launchCompleteCommand": "exec-run",
"linux": {
"MIMode": "gdb",
"miDebuggerPath": "/usr/bin/gdb"
},
"osx": {
"MIMode": "lldb"
},
"windows": {
"MIMode": "gdb",
"miDebuggerPath": "C:\\MinGw\\bin\\gdb.exe"
}
}
5、调试dump(转储)文件
C/ c++扩展允许调试Windows上的dump文件以及Linux和OS X上的core dump文件
dumpPath:如果要调试Windows转储文件,请将此设置为转储文件的路径,以便在启动配置中启动调试。
coreDumPath:要调试指定程序的核心转储文件的完整路径。将其设置为核心转储文件的路径,以便在启动配置中启动调试。注意:MinGw不支持核心转储调试。
6、远程调试或者本地服务器上调试
miDebuggerServerAddress:调试器服务器(例如gdbserver)的网络地址,以便连接到远程调试(例如:localhost:1234)。
debugServerPath:调试服务器启动的完整路径。
debugServerArgs:调试服务器的参数。
serverStarted:要在调试服务器输出中查找的服务器启动模式。
serverLaunchTimeout:调试器等待debugServer启动的时间(以毫秒为单位)。默认是10000。
7、其他属性
processId:默认为
${command.pickProcess}。将显示调试器可以附加到的可用进程列表。建议保留此默认值,但是可以显式地将该属性设置为调试器要附加到的特定进程ID。request:指示配置节是打算启动程序还是附加到已运行的实例。
targetArchitecture:由于自动检测到目标体系结构,因此不再需要此选项。
type:指示正在使用的底层调试器。使用Visual Studio Windows调试器时必须是cppvsdbg,使用GDB或LLDB时必须是cppdbg。这将在启动时自动设置为正确的值。创建json文件。
sourceFileMap:这允许将源的编译时路径映射到本地源位置。它是键/值对的对象,将解析第一个字符串匹配的路径。(例如:"sourceFileMap": {"/mnt/c": "c:\"}将映射调试器返回的以/mnt/c开头的任何路径,并将其转换为c:\。对象中可以有多个映射,但它们将按提供的顺序处理。)
参考:
1.官网:https://github.com/Microsoft/vscode-cpptools/blob/master/launch.md
2.csdn博客:https://blog.csdn.net/wzxlovesy/article/details/76708151
https://blog.csdn.net/g19zwk/article/details/78414226
vscode插件之C/C++的更多相关文章
- VSCODE 插件初探
写在前面 分享一个vscode插件background(用于改变背景).点击直接跳到vscode插件开发步骤 做vscode的插件,很久就有这个想法了,但是一直因为这样,那样的事情耽误,放弃了N次.不 ...
- vscode 插件 与 技巧
lit-html 下载量:3 万 在 JavaScript/TypeScript 的文件中,如果有使用到 HTML 标记,lit-html 提供语法高亮和相应的补全支持. Git History 下载 ...
- 精选!15 个必备的 VSCode 插件(前端类)
精选!15 个必备的 VSCode 插件(前端类) 就像大多数 IDE 一样,VSCode 也有一个扩展和主题市场,包含了数以千计质量不同的插件.为了帮助大家挑选出值得下载的插件,我们针对性的 ...
- 个人向 - vscode插件记录
现在用的编译器的是vscode,本身这个编译器很小,很多功能都没有,需要自己下载一些插件来完善功能,不知不觉下载的插件也有三十多个了,感觉需要记录一下. tips:1. vscode插件的安装位置:’ ...
- 2019.1.7 Mac的Vscode插件总结
Vscode插件 通用插件 Chinese 配置中文界面 HTML Snippets H5代码片段以及提示 HTML CSS Support 让 html 标签上写class 智能提示当前项目所支持的 ...
- VSCode插件整理
VSCode插件整理 VSCode插件整理 官网地址 vscode常用配置(User Settings文件) 基本插件 前端插件 VUE部分 python MarkDown部分 连接Linux 本地与 ...
- 玩转VSCode插件之Remote-SSH
前言 每当更换电脑就要从新搭建一遍开发环境... 每当拉完最新代码程序在本地跑不起来的时候就要检查服务器和开发电脑的环境... 每当服务器上出Bug的时候就想如果可以能够调试服务器代码多好啊.. 你是 ...
- VScode 插件推荐与C/C++配置
以下是我经常用到的VScode插件.由于插件本身具有详细的配置和介绍,不对插件本身的安装配置进行说明,仅仅支出这些插件的主要功能.具体使用强烈推荐看一下安装插件后的说明,大多数的问题和设置都可以找到, ...
- VsCode插件与Node.js交互通信
首先关于VsCode插件通信,如果不明白的可以参考我的这篇博客VsCode插件开发之插件初步通信 如果需要详细例子的话,可以参考VsCode插件开发 现在又有一个新的需求是,VsCode插件可以通过j ...
- react开发vscode插件推荐
原文地址:https://github.com/xieqingtian/blog/issues/2 由于本人主要是做react开发,用的代码编辑器是传说中的宇宙第一前端神器vscode, 所以在这里记 ...
随机推荐
- 为linux dns (bind named)服务器配置 单独的笔记
注意: 当在把 named.ca文件下载好13个根dns服务器的 全球记录后, 就不再需要别的 dns服务器来辅助获得了. 只要把所有 本地服务器 不能解析的请求, 都发送到 . 点根去就行了, 所以 ...
- SP10707 COT2 - Count on a tree II 莫队
链接 https://vjudge.net/problem/SPOJ-COT2 https://www.luogu.org/problemnew/show/SP10707 思路 dfs欧拉序转化为普通 ...
- 【分片无法挂载】Elasticsearch分片和副本无法挂载(分片移位)
部署说明 硬件 服务器两台: 机器A:64G内存 机器B:32G内存 分片 共12个节点 2个查询节点,10个存储节点 8个主分片 1个复制分片(每个分片都有一个副本分布在不同的节点上面) 每台机器都 ...
- facebook ads api
api测试 https://developers.facebook.com/tools/explorer/517735271920003?method=GET&path=act_1107316 ...
- 解决Maven管理项目update Maven时,jre自动变为1.5
本文为博主原创,未经允许不得转载: 在搭建一个maven web项目时,项目已经按步骤搭建完好,之后项目上就报了一个错误. 在控制台看到错误提示如下:Dynamic Web Module 3.0 re ...
- Wijmo 2017 V1发布
2017年Wijmo的第1个Release已经发布了!它充满了令人兴奋的新控件和新功能.一个新的TreeView控件:一个只有看到你才会相信的MultiAutoComplete控件:移动平台报表查看器 ...
- linux运行lnmp 出现502错误
之前遇到的问题: 安装好之后访问域名出现502错误,打开html文件正常,说明是php出现问题.在wwwlog文件夹查看nginx日志,发现报错原因是找不到/var/run/php5-fpm.sock ...
- SNMOJ 31
考虑将给入的$A$数组差分,得到差分数组$C$ 每一次操作相当于把差分数组的每一位${+1}$,其中一个位置上${-n+1}$. 我们可以直接算出要进行多少次操作:${T=\frac{\sum A[i ...
- hdu 1115 Lifting the Stone 多边形的重心
Lifting the Stone Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...
- git difftool和mergetool图形化
1.当然是先安装Beyond Compare3 (此处省略安装步骤,自行百度) 2.设置difftool git config --global diff.tool bc3 git config -- ...