当我终止调试时,vscode-go 调试器会向 delve-dap 发送什么操作系统信号

zen*_*321 4 signals go visual-studio-code delve vscode-debugger

我想在终止 vscode golang 调试器时捕获操作系统信号并执行一些退出作业。

我的代码如下:

sigalChan := make(chan os.Signal, 1)
signal.Notify(sigalChan, syscall.SIGINT, syscall.SIGTERM)
<-sigalChan
doSomeJobs()
Run Code Online (Sandbox Code Playgroud)

但它不起作用。谁能告诉我如何弄清楚?也许信号类型不是 SIGINT 或 SIGTERM?

zen*_*321 11

我找到一个解决方案。只需在launch.json中将“console”设置为“integratedTerminal”即可使delve服务器前台,然后我可以使用“ctrl+c”终止调试过程,并且可以在我的程序中接收信号。

{
    // launch.json
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Launch",
            "type": "go",
            "request": "launch",
            "mode": "auto",
            "program": "${workspaceFolder}/main.go",
            "console": "integratedTerminal"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)