簡體   English   中英

GDB 無法使用 VS Code 調試正在運行的進程,但可以通過命令行

[英]GDB can't debug running process using VS Code but can through command line

我正在嘗試調試 Windows 上的 C++ 應用程序,該應用程序已由 python 腳本啟動。 我可以從命令行使用 GDB 附加到進程,一切正常。

但是,當嘗試使用 VS Code 附加 GDB 時,它管理附加,但所有斷點都卡在Attempting to bind to the breakpoint...並嘗試在調試控制台中執行命令返回Unable to perform this action because the process is running. .

這是我的 launch.json 配置:

{ 
        "name": "(gdb) Attach",
        "type": "cppdbg",
        "request": "attach",
        "program": "${workspaceFolder}\\build\\program.exe",
        "processId": "${command:pickProcess}",
        "MIMode": "gdb",
        "miDebuggerPath": "C:\\Program Files (x86)\\mingw-w64\\i686-8.1.0-posix-dwarf-rt_v6-rev0\\mingw32\\bin\\gdb.exe",
        "setupCommands": [
            {
                "description": "Enable pretty-printing for gdb",
                "text": "-enable-pretty-printing",
                "ignoreFailures": true
            }
        ]
    }

我假設 VS 代碼在啟動 GDB 時做了一些額外/奇怪的事情,有沒有辦法解決這個問題?

我知道這是一個老問題,但我遇到了讓我來到這里的同樣問題。
對我來說,罪魁禍首是 launch.json 中的“miDebuggerPath”
盡管我無數次檢查時路徑看起來是正確的,但它與從命令行調用的路徑不同(我正在 Linux 機器上工作,環境中安裝了很多 gdb 版本)
嘗試找到從命令行調用的 gdb 路徑,並將其添加到調試配置文件中的上述參數中。

MinGW 上的 GDB 有一些限制

Cygwin 和 MinGW 上的 GDB 無法中斷正在運行的進程。 要在應用程序運行時設置斷點(不在調試器下停止),或暫停正在調試的應用程序,請在應用程序的終端中按 Ctrl-C。

在 VS Code 中設置斷點之前,請確保使用Ctrl - C停止應用程序。 另請參閱相關問題: https : //github.com/Microsoft/vscode-cpptools/issues/595

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM