2011-09-30 69 views
2

在VS 2010中,我將源代碼附加到進程以進行調試。我將一個斷點設置爲我的log4net日誌表示失敗的一行。附加到進程問題

當我設置斷點,啓動並附加到進程時,斷點顯示爲清晰。當我在斷點處盤旋時,警告說我的斷點不會被打到,因爲那個特定的符號沒有被加載。

我不明白我該如何選擇錯誤的源文件來設置斷點。我直接從日誌中得到它,這給了我的代碼失敗的文件和行的絕對路徑。

請告訴我。

THX

+1

Debug + BreakAll。調試+ Windows +模塊。找到列表中的DLL,右鍵單擊它並選擇「符號加載信息」。它向您顯示調試器查找.pdb文件的位置。 –

回答

2

清楚BP表示不執行你正在尋找的源代碼。我們知道這是事實。

因此a)您附加了錯誤的源代碼b)您的源代碼已過期或者與其他二進制文件不完全匹配c)如果您有一個預編譯的二進制文件鏈接到一個dll或一個dll .lib)可能需要下載官方的「調試符號」 - 因爲「發佈」二進制文件沒有包含足夠的信息來將其與源代碼關聯起來。如果未提供這些信息,則可能需要自己從源代碼重建第三方庫,以便進行調試構建。

有一段時間沒有做視覺工作室,所以這可能有點關閉。

1

我不明白我該如何選擇錯誤的源文件來設置斷點。我直接從日誌中得到它,這給了我的代碼失敗的文件和行的絕對路徑

您沒有選擇錯誤的源文件(很可能)。問題是Visual Studio需要更多的功能來達到你設置的斷點 - 它需要編譯你正在調試的應用程序時創建的pdb文件 - 你有這些文件嗎?你是否在Debug或Release模式下編譯?

調出模塊窗口(調試 - > Windows - >模塊)並尋找你的DLL/EXE。右鍵點擊並選擇'符號加載信息'。那是什麼意思?