簡體   English   中英

如何在 Visual Studio 中的引用代碼中設置斷點?

[英]How can I set a breakpoint in referenced code in Visual Studio?

我的主要解決方案是使用我自己編寫的實用程序類庫中的代碼,但它是另一個解決方案的一部分。 如何在引用的 DLL 文件中設置斷點?

單擊Debug,New Breakpoint,Break at Function,然后輸入函數的全名。

在Visual Studio中,使用菜單手動打開包含所需方法的引用DLL的源文件

文件>打開>文件...

然后通過單擊代碼編輯器中的左邊框來設置斷點。 這使您可以在任何代碼行中斷,而不僅僅是函數調用。 Visual Studio以一種禁用狀態顯示斷點,因為它認為代碼無法訪問。 只是忽略它; 一旦代碼運行並加載了DLL,斷點將變為活動狀態。

注意:您必須引用程序集的Debug版本才能使其正常工作。

您可以執行以下操作之一:

  1. 將DLL項目添加到包含可執行文件的解決方案中。 然后您可以正常設置斷點。
  2. 您只需打開DLL項目並使用Debug - > Attach to Process連接到正在運行的EXE

確保在引用的類庫dll所在的bin / debug文件夾中有.pdb文件。 在調試當前解決方案時,您應該能夠從類庫中進入代碼。 當您進入類庫時,您將能夠設置斷點。

我知道這是一個老問題,但可能對很多人有所幫助。

要使調試器正常工作,您需要加載調試符號數據庫,一個與要調試的程序集同名的.pdb文件。 如果它是您創建的解決方案的一部分,您可以從其他解決方案的bin文件夾中復制粘貼它。 然后添加一個斷點,指定要調試的方法的完整路徑,以及它所在的程序集的名稱.EX:“MyNamespace.MayClass.MyMethod,MyAssemblyName”

如果你不擁有這些代碼,你有2個選項,都涉及一個dissasembler。 我使用dotPeek,因為它真的很搖滾。

選項1:使用dotPeek打開程序集並為其創建單個.pdb,然后將其復制到.bin文件夾並按照上述步驟操作。 https://www.jetbrains.com/decompiler/help/Generating_PDB_Files.html

選項2:使用dotPeek符號服務器和PDB生成。 https://www.jetbrains.com/decompiler/help/Symbol_Server_and_PDB_Generation.html然后按照上面的說明附加調試器實例。

希望這可以幫助

這不是我自己的答案,這是Frep D-Oronge在上述評論之一中提出的建議。 這很容易,沒有打嗝:

“我覺得很容易 - 只是並排運行兩個Studio實例。在主要的一個實例上按Ctrl-F5啟動而不連接調試器,然后使用編輯庫項目的工作室實例附加到進程”

所有學分歸於他。

跟着這些步驟:

  1. 轉到Debug
  2. 轉到New Breakpoint
  3. 單擊Function Breakpoint或單擊Ctrl+K, B
  4. 出現一個窗口,按以下格式鍵入函數名稱:

namespace.ClassName.FunctionName

例如,假設您有這樣的代碼,我想在函數D的開頭放置一個斷點:

namespace A.B{
    public class C{
          public void D(){
               int x= 10;
          }
    }
}

因此,在Function Breakpoint窗口中,您需要輸入: ABCD

假設您想要調試位於您依賴的 NuGet 包深處的SomeMethod

在這種情況下,更簡單的方法是:

  1. 在您自己的代碼/測試文件中的任意位置鍵入MyClass.SomeMethod
  2. Control+單擊“SomeMethod”,Visual Studio 將打開“MyClass.cs”
  3. 添加斷點
  4. 返回您的代碼並刪除您在第 1 步中鍵入的MyClass.SomeMethod
  5. 點擊“調試”

暫無
暫無

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

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