VSCode打斷點沒有反應解決方案

一、可能的原因

1、生成源碼的方式不同:

在 Visual Studio 中調試的話,程序會生成 .pdb 文件,這個文件包含了程序的符號表信息,包含了變量名、函數名以及地址等,這樣 Visual Studio 在調試時就可以根據這些信息來對程序進行分析了。

但是在 VSCode 中,它並不會使用 pdb 文件,它使用的是諸如 LLVM 等編譯器的 DWARF 格式來生成 GDB 所需的信息。而 DWARF 格式只有在調用此函數時才會生成,而且只有第一次調用函數時才會生成,所以,如果沒有調用一個函數,那麼 GDB 就不知道這個函數的符號信息。

2、調試信息沒有編譯進程序中:

有時候在編譯程序的時候,如果沒有手動開啟調試信息等選項,就會導致編譯時沒有將調試信息編譯進程序中,這樣調試器就找不到符號信息。

3、安裝的插件不支持:

在使用 VSCode 的時候,我們可能會安裝一些插件,比如 C/C++ 插件,這些插件有時候可能會影響程序的調試,導致斷點無法正常工作。

二、解決方案

1、生成調試信息

在 VSCode 中調試的時候,需要程序生成調試信息才能正常使用斷點,我們可以採用以下兩種方式來生成調試信息:

  1. 在編譯時開啟調試信息選項
  2. g++ -g main.cpp -o main    //Linux
    cl /Zi main.cpp           //Windows
  3. 手動添加調試符號
  4. objdump -g --dwarf=info a.out > a.dwarf

    通過這種方式,我們可以手動添加調試符號。

2、禁用不必要的插件

在使用 VSCode 調試的時候,有些插件可能會影響程序的調試,我們可以先禁用插件並嘗試重啟 VSCode,看是否能夠正常使用斷點。如果斷點正常工作,則說明插件是問題所在,我們可以重新安裝或更換插件。

3、使用調試命令行工具

除了 VSCode 自帶的調試工具外,我們還可以使用 GDB 或其他命令行調試工具來進行調試,這些工具的功能非常強大,而且不會出現斷點無法正常工作的問題。

三、總結

在使用 VSCode 進行調試時,有時候遇到斷點無法正常工作的問題。這可能是由於生成調試信息的方式不同、調試信息沒有編譯進程序中或安裝的插件不支持等原因造成的。為了解決這個問題,我們可以嘗試生成調試信息、禁用不必要的插件或使用命令行調試工具等方法。希望本文能夠幫助大家解決問題,提高工作效率。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/293604.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-26 13:14
下一篇 2024-12-26 13:14

相關推薦

發表回復

登錄後才能評論