[英]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版本才能使其正常工作。
您可以執行以下操作之一:
確保在引用的類庫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啟動而不連接調試器,然后使用編輯庫項目的工作室實例附加到進程”
所有學分歸於他。
跟着這些步驟:
Debug
New Breakpoint
Function Breakpoint
或單擊Ctrl+K, B
namespace.ClassName.FunctionName
例如,假設您有這樣的代碼,我想在函數D
的開頭放置一個斷點:
namespace A.B{
public class C{
public void D(){
int x= 10;
}
}
}
因此,在Function Breakpoint
窗口中,您需要輸入: ABCD
假設您想要調試位於您依賴的 NuGet 包深處的SomeMethod
。
在這種情況下,更簡單的方法是:
MyClass.SomeMethod
MyClass.SomeMethod
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.