我注意到 Node.js 有一个调试器“自动附加”功能,如果可能的话我想使用它。但是,我不认为在重新编译程序后可以使用“自动附加”来自动启动调试器。我使用 C/C++/Fortran 使用 makefile(和类似文件)编译我的程序,因此在运行“make”后我得到一个正常的(linux)可执行文件。然后,我执行该二进制文件,并且通常希望在此之后立即对其进行调试。我已将完整的二进制路径设置为环境变量"$myprog=/home/user/my-dev/bin/myApp"。
所以我所做的就是使用“附加到进程”来运行调试,每次我都必须在下拉列表中找到正确的进程,但我每天、每小时都这样做太多次,这变得很乏味,并且想要更智能的东西,“更自动”:
我想修改我的launch.json,以便它使用例如shell命令自动提取进程ID,而不是“自动附加”(仅适用于node.js,据我所知):并且可以选择将'pgrep -x "$myprog"'其绑定到键盘-捷径。
我猜该行"processId": "${command:pickProcess}"需要修改,请参阅下面的示例配置:
{
"name": "(gdb) Attach (any)",
"type": "cppdbg",
"request": "attach",
"program": "/home/user/my-dev/bin/myApp",
"processId": "${command:pickProcess}",
"MIMode": "gdb",
"miDebuggerPath": "/usr/bin/gdb"
},
Run Code Online (Sandbox Code Playgroud)
是否可以修改该launch.json文件,以便 VS code 理解变量“processId”应该被 shell 输出替换:(pgrep -x "$myprog"显然,在每次编译和执行要调试的程序之后,这个 PID 都会发生变化)?
如果是这样,我想也可以将它绑定到键盘快捷键?有谁知道如何实现这一目标?