如何在-EXEC -RUN点之后运行VSCODE启动调试命令?
我已经创建了一个VSCODE启动。JSON配置可以调用我的程序,设置一些断点并在主要断点处停止:
{
"version": "0.2.0",
"configurations": [
{
"name": "(lldb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "/usr/bin/foo",
"args": ["--debug", "-j", "${fileDirname}/${fileBasenameNoExtension}.xxx"],
"stopAtEntry": true,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": false,
"MIMode": "lldb",
"miDebuggerPath": "/usr/bin/lldb-mi",
//"logging": {
// "trace": true,
// "traceResponse": true,
// "engineLogging": true
//},
"setupCommands": [
{ "text": "-break-insert -f rc_pli_enter_module" },
{ "text": "-break-insert -f print_message" },
{ "text": "-break-insert -f rc_pli_fatal_error" }
]
}
]
}
我需要通过以下方式到调试器:
process handle -s false -n false -p true SIGSEGV
由于我们的代码具有复杂的SEGV处理程序,因此基本上需要忽略它但是,在调试时,如果我在设置中包含“过程句柄”,我会遇到一个错误:
error: invalid target, create a target using the 'target create' command
我在debug-console log(启用时)中看到所有这些设置在VSCODE将其命令发送给MI Client的命令之前运行的所有这些设置目标实际运行。 IE:
-environment-cd /home/pjoot/...
-file-exec-and-symbols /usr/bin/foo
-exec-arguments --debug -j /home/pjoot/yyy.xxx
-exec-run
如果我尝试将这些目标命令放入我的设置命令中,那么我可以在主断点之后让我的“进程句柄”运行,但是VSCODE然后将尝试自己做到这一点,并且事情变得困惑(它不喜欢线程输出它在其自己的目标创建处理之前返回。)
是否有设置命令之类的东西,我可以用来让vscode在完成“目标创建”处理后发送其他mi命令?
我知道我可以使用以下方式在Debug-console中手动执行此操作:
-exec process handle -s false -n false -p true SIGSEGV
但是不必记住该较长的命令会更好,而是自动运行它(+继续进行我的实际非MAIN断点)。
编辑:我找到了postremoteconnectCommands选项(似乎没有记录,但)。我可以将其用于GDB断点,该断点不起作用,而没有首先在“设置断点”的情况下使用。但是,PoStremoteConnectCommands与vscode一起使用LLDB时,似乎仍在设置目标之前运行。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论