簡體   English   中英

調試到編譯的DLL文件中

[英]Debug into compiled DLL files

我有一個第三方DLL(CSLA),它引用了我的項目。 現在一切正常,但是當CSLA因任何原因拋出異常時,它會顯示帶有內存地址等的反匯編。我想實際看到源代碼。 我已經完成以下工作,但仍然沒有區別。

  1. 在Visual Studio 2010中,僅在我的代碼選項中禁用調試。
  2. 檢查正在加載的符號文件(Debug - > Windows - > Modules),看起來好像是。

我的假設是正確的,只要有.pdb文件被加載,那么我應該能夠調試到源代碼?

為什么我不能讓調試器顯示源代碼?

不。僅.pdb不包含源代碼。 它只是IL-location =>源代碼行的映射文件。

.NET Reflector Pro (非自由版本)使您可以進入外部庫代碼。

實際上,pdb文件不能保證您可以單步執行源代碼。 PDB包含有關源位置的信息,因此您必須獲取源以進行此類調試。 您可以做的一件事是使用Debug-> Exceptions選項。 您必須選中包含您獲得(或添加新的)異常的復選框並調試您的應用程序。 下次你在拋出異常的那一刻剎車,你將能夠收集堆棧痕跡。

您實際上是否擁有第三方DLL的源代碼? 如果沒有,那就是為什么您看不到它的原因。

Reflector(http://www.red-gate.com/products/reflector/)的付費版本可以調試為“反編譯”代碼,這通常非常清楚。 這僅在您遇到問題的DLL是.NET程序集時才有效,但我不確定100%肯定是您提出的問題。

暫無
暫無

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

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