2017-02-17 53 views
3

我正在調試Visual Studio中的程序,我想知道爲什麼我的程序通過特定單元(源代碼文件)中的函數旁邊。
我認爲調用堆棧會顯示這一點,但這似乎並非如此。此外showable條目列表甚至沒有提到的文件名:視覺工作室調用堆棧窗口不顯示文件名

  • 顯示模塊名
  • 顯示參數類型
  • 顯示參數名稱
  • 顯示參數值
  • 顯示行號
  • 展字節偏移量

=> no「顯示文件名」,alt儘管「顯示行號」的存在意味着文件名應該是已知的。

我正在使用適用於Windows桌面的Visual Studio Professional 2017。

這是一個配置問題,這是沒有出現在我的Visual Studio安裝(如果是這樣,哪個版本有此功能),或者這是在Visual Studio中根本沒有預見?

對於一個很好的理解,我的調用堆棧如下所示:

<product>.dll!<first_class>::<first_class>(double dFy, double dFx) Line 102 C++ 
<product>.dll!<subfunction>(double dFv, double dFh) Line 1450 C++ 
<product>.dll!<subsubfunction>(double dFv, double dFh, int number) Line 1672 C++ 
... 

雖然我想看到的東西,如:

<product>.dll!<first_class>::<first_class>(double dFy, double dFx) File <file1.c> Line 102 C++ 
<product>.dll!<subfunction>(double dFv, double dFh) File <file2.c> Line 1450 C++ 
<product>.dll!<subsubfunction>(double dFv, double dFh, int number) File <file2.c> Line 1672 C++ 
... 

正如我在差異特別感興趣在中央源文件和項目特定的源文件之間,我想看到文件名中的整個路徑。

+0

爲了您的理解:前一段時間我問過這個問題,但沒有足夠的注意力,同時我升級到了更新版本的Visual Studio,但問題依然存在。 – Dominique

+0

也許PDB不同步:https://www.wintellect.com/pdb-files-what-every-developer-must-know/ –

+0

@SimonMourier:我有一個設置,我的源代碼必須完全匹配PDB ,所以PDB不可能同步。這裏的問題是源文件名,它似乎存在於PDB中(正如您提供的非常有趣的鏈接中所述),但未在Visual Studio的調用堆棧窗口中顯示。 – Dominique

回答

1

您可以停止尋找,選擇是根本無法獲得。

很難猜測爲什麼微軟決定不提供它,但它是唯一不明確的調試信息。軟件需要每天處理的東西,他們調試的程序一般都建立在源代碼構建服務器上,而不是位於相同的目錄中。

我想通過自己的文件瀏覽,而無需打開所有包含的個別中央文件...

這是沒有必要的,只要雙擊在堆棧中的特定條目跟蹤你感興趣的內容。如果調試器知道源文件,那麼它將自動打開並將脫字符定位在語句中。懸停編輯器選項卡將顯示文件的路徑。如果調試器找不到源文件,那麼你會得到一個對話框來導航到正確的目錄。

1

從我所知道的是沒有這樣的選項(在任何版本的Visual Studio中)。唯一可以做的就是右鍵單擊調用堆棧並按轉到源文件。然後你會看到源代碼,並希望你會知道它是哪個版本的文件。據我所知,還沒有你想要完成的插件。

right-click on call stack and press go to source file

+0

感謝您的回覆,但這不是我想要的:當我查看我的調用堆棧時,深度約爲30-40個條目,是自己的文件和中央文件的混合(「C:\ Program Files \ ...」 ),我想瀏覽自己的文件,無需打開所有包含的個人中心文件。 – Dominique

+0

哦,我看到了,但據我所知,仍然沒有簡單的方法來做到這一點。 – wdudzik