2008-08-28 257 views
4

我正在VS 2008中工作,並在一個解決方案中有三個項目。我正在通過附加到由第三方應用程序(SalesLogix,CRM應用程序)調用的.net進程進行調試。Visual Studio 2008調試問題

一旦它連接到進程並嘗試在其中一個項目中設置斷點,它不會在該文件中設置斷點。它實際上將當前選項卡切換到另一個項目中的另一個文件,並在該文檔中設置斷點。如果文件沒有打開,它甚至可以爲我打開它。我無法解釋這一點。我沒有任何線索。有人看到這種奇怪的行爲?如果我自己沒有看到它,我不會相信它。

更多信息:如果我在附加前設置了斷點,它會顯示「紅點」,並表示沒有符號加載......沒問題......我期待這一點。當我從SalesLogix附加並調用.NET代碼並切換回VS時,我的斷點完全消失了(甚至沒有警告源代碼與調試文件不匹配)。當我嘗試手動加載調試文件時,則會收到一條消息,指出符號文件與模塊不匹配。 .pdb和.dll的時間戳是一樣的,所以我很難過。

任何人有任何想法?

THX,

傑夫

+0

您是在方法/函數調用中設置斷點的行嗎?也許函數已經被內聯,所以VS足夠聰明,可以在方法本身中設置斷點。 – 2008-08-28 00:27:27

回答

4

我看到了舊版本VS.Net此功能(2003年,我認爲)。它可能仍然存在於當前版本中,但我沒有遇到它。看起來即使在不同的目錄中,具有相同名稱的文件也會混淆VS.Net,並且它最終會在具有相同名稱的文件中設置斷點。只有當文件中的類都具有相同的名稱時纔可能發生。對於我想的命名空間來說太多了。

您還可能需要檢查您的構建配置,以確保所有項目實際上都是以調試模式構建的。我知道當配置在某種程度上改變了解決方案時,我被捕了幾次,有些項目沒有在調試模式下編譯。

0

Kibbee,你是對的!這是兩個在不同文件夾中具有相同名稱的文件。我在第58行的正確文件中設置了斷點 - 它將斷點放在第58行的另一個文件上。我終於可以通過使用「Debug - > New Breakpoint - > Break at Function」來設置斷點名稱「菜單選項並輸入我的功能名稱。它完全停止了。

我同意 - 對於名稱空間非常重要,對嗎?該死的東西花了我幾個小時。哦,呃...至少它解決了,我知道爲什麼。

Thx答案和thx馬特他的答覆呢!