windows上cursor用cppvsdbg调试进程
windows上调试进程解dump,一般是用vs,但是vs毕竟是个很老的ide,相比新兴的cursorvscode这一类ide,显得没有那么好用了本来微软的插件在cursor里直接可以使用cppvsdbg的,从某个版本开始,微软限定了cppvsdbg只能在vscode里使用,在cursor里使用会有报错和提示所以cursor里调试c++,很多都转向了用code-lldb这个插件,用lldb来调试,
windows上cursor用cppvsdbg调试进程
vscode调试c++很爽
windows上调试进程解dump,一般是用vs,但是vs毕竟是个很老的ide,相比新兴的cursor/vscode这一类ide,显得没有那么好用了
本来微软的cpptools vscode插件在cursor里直接可以使用cppvsdbg的,从某个版本开始,微软限定了cppvsdbg只能在vscode里使用, 在cursor 里使用会有报错和提示
所以cursor里调试c++,很多都转向了用code-lldb这个插件,用lldb来调试,但是这个lldb对于小项目,可用,但是对于win上的大型项目,确实是很慢很慢,几乎是不可用,受不了attach一下要loading几十秒之后才能反应过来,才开始走到下载pdb的步骤
怎么办呢,有大神已经解决了这个问题 ,具体可以参考下面这个链接
https://gist.github.com/Ouroboros/1a1e0b9c8bcbac2a519516aa5a12a52b
具体就是先改一下 %USERPROFILE%\.cursor\extensions\ms-vscode.cpptools-1.23.5-win32-x64\package.json 这个json,
然后再改一下这个%USERPROFILE%\.cursor\extensions\ms-vscode.cpptools-1.23.5-win32-x64\debugAdapters\vsdbg\bin\vsdbg.dll
就可以了
如何hack插件
第1步的详细步骤
Remove this condition
"when": "workspacePlatform == windows"
%USERPROFILE%\.cursor\extensions\ms-vscode.cpptools-1.23.5-win32-x64\package.json"type": "cppvsdbg", "label": "C++ (Windows)", "when1": "workspacePlatform == windows",
第2步的详细步骤
- Open
debugAdapters\vsdbg\bin\vsdbg.dll- Find 488D159E4B0600 in binary format
- find 74 15 a bit below it:
- Mark the 15 box and change to it 00:
如何安装插件
另外就是微软的vscode-cpptools默认在cursor的插件商店里是没有的,要下载下来安装,可以从vscode-cpptools的githhub上找release链接,然后下载下来 https://github.com/microsoft/vscode-cpptools/releases
找个想用的版本,把vsix下载下来,然后在curosr里ctrl+shift+p,输入Install From VSIX,选定刚下载的插件进行安装就可以了
配置
相比于vs,绝对的优势是对于一些库的源码映射是可以持久化 的,vs也可以添加库的源码映射,不过一般是项目级的,在重新生成sln之后,这些源码映射目录就会丢失,需要重新来搞,远不如cursor/vscode方便
另外也可以通过 core dump来直接在cursor里解析dump的崩溃栈,还可以直接把调用栈copy出来,直接丢给cursor,让cursor分析崩溃的原因并进行修复,效率大大提升
剩下就是要设置pdb的缓存目录,免得每次调试要重新下载符号文件导致调试时间变长
launch.json 如下
{
"configurations": [
{
"name": "attach win",
"type": "cppvsdbg",
"request": "attach",
"processId": "${command:pickProcess}",
"sourceFileMap": {
"d:\\jenkins\\workspace\\xx": "D:\\workspace\\cpp\\xx",
},
"symbolOptions": {
"searchPaths": [
"D:\\VsSymbols",
"${workspaceFolder}/bin/x64/Release/myApp"
],
"searchMicrosoftSymbolServer": true,
"cachePath": "D:\\VsSymbols",
"moduleFilter": {
"mode": "loadAllButExcluded",
"excludedModules": ["DoNotLookForThisOne*.dll"]
}
}
},
{
"name": "attach win lldb",
"type": "lldb",
"request": "attach",
"pid": "${command:pickProcess}"
},
{
"type": "cppvsdbg",
"request": "launch",
"name": "Core Dump",
"program": "${file}",
"cwd": "${workspaceFolder}",
"dumpPath": "${file}",
"symbolSearchPath": "D:\\VsSymbols",
"sourceFileMap": {
"d:\\jenkins\\workspace\\xx": "D:\\workspace\\cpp\\xx",
},
"symbolOptions": {
"searchPaths": [
"D:\\VsSymbols",
"${workspaceFolder}/bin/x64/Release/todesk"
],
"searchMicrosoftSymbolServer": true,
"cachePath": "D:\\VsSymbols",
"moduleFilter": {
"mode": "loadAllButExcluded",
"excludedModules": ["DoNotLookForThisOne*.dll"]
}
}
}
],
"inputs": [
{
"id": "coreFileName",
"type": "promptString",
"description": "Enter core file path"
}
]
}
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)