1. 程式人生 > >Visual studio如何使用“呼叫堆疊視窗”檢視除錯資訊

Visual studio如何使用“呼叫堆疊視窗”檢視除錯資訊

如何:使用“呼叫堆疊”視窗

使用“呼叫堆疊”視窗可以檢視當前堆疊上的函式或過程呼叫。

“呼叫堆疊”視窗顯示每個函式的名稱以及編寫它所用的程式語言。 函式或過程名稱可能包含可選資訊,如模組名稱、行號、引數名稱、型別和值。 可以開啟或關閉這些可選資訊的顯示。

一個黃色箭頭標識執行指標當前所位於的堆疊幀。 預設情況下,該幀的資訊顯示在源、“反彙編”“區域性變數”“監視”“自動”視窗中。 如果想將上下文更改為堆疊上的另一個幀,可以在“呼叫堆疊”視窗中執行相應的操作。

當除錯符號對部分呼叫堆疊不可用時,“呼叫堆疊”視窗也許就不能顯示那部分呼叫堆疊的正確資訊。 將出現以下表示法:

[下面的幀可能不正確和/或缺失,沒有為 name.dll 載入符號]

在託管程式碼中,預設情況下,“呼叫堆疊”視窗將隱藏非使用者程式碼的資訊。 在隱藏資訊處出現以下表示法:

[<External Code>]

非使用者程式碼是任何程式碼,這些程式碼不是可通過快捷選單選擇以顯示非使用者程式碼的呼叫堆疊資訊的我的程式碼。

可以使用快捷選單選擇檢視執行緒之間的呼叫。

說明 說明

顯示的對話方塊和選單命令可能會與“幫助”中的描述不同,具體取決於您的當前設定或版本。 若要更改設定,請在“工具”選單上選擇“匯入和匯出設定” 

以中斷模式或執行模式顯示“呼叫堆疊”視窗

  • “除錯”選單中選擇“視窗”,然後單擊“呼叫堆疊”

更改顯示的可選資訊

  • 右鍵單擊“呼叫堆疊”視窗,然後設定或清除“顯示 <the information that you want>”

在“呼叫堆疊”視窗中顯示非使用者程式碼幀

  • 右擊“呼叫堆疊”視窗,然後選擇“顯示外部程式碼”

切換到另一個堆疊幀

  1. “呼叫堆疊”視窗中,右擊要檢視其程式碼和資料的幀。

  2. 選擇“切換到幀”

    一個帶有卷尾的綠色箭頭顯示在所選幀旁。 執行指標保留在原始幀中,仍然用黃色箭頭標記。 如果從“除錯”選單中選擇“單步執行”“繼續”,執行將繼續在原始幀中進行,而不是在選定的幀中進行。

顯示與其他執行緒之間的來回呼叫

  • 右擊“呼叫堆疊”視窗,然後選擇“包括對其他執行緒和來自其他執行緒的呼叫”

檢視呼叫堆疊上的函式的原始碼

  • “呼叫堆疊”視窗中,右擊要檢視其原始碼的函式,然後選擇“轉到原始碼”

直觀地跟蹤呼叫堆疊

  • “呼叫堆疊”視窗中,開啟快捷選單。 選擇“在程式碼圖上顯示呼叫堆疊”。(鍵盤:Ctrl + Shift + `

檢視呼叫堆疊上的函式的反彙編程式碼

  • “呼叫堆疊”視窗中,右擊要檢視其反彙編程式碼的函式,然後選擇“轉到反彙編”

從“呼叫堆疊”視窗執行到特定函式

在函式呼叫的退出點上設定斷點

載入模組符號

  • 如果要重新載入模組的符號,請在“呼叫堆疊”視窗中右擊顯示該模組的幀,然後選擇“載入符號”

載入符號

“呼叫堆疊”視窗中,可以為當前還未載入符號的程式碼載入除錯符號。 這些符號可以是從 Microsoft 公共符號伺服器下載的 .NET Framework 符號或系統符號,也可以是正在除錯的計算機上的某個符號路徑中的符號。

載入符號

  1. “呼叫堆疊”視窗中,右擊尚未為其載入符號的幀。 此幀將顯示為灰色。

  2. 指向“載入符號”,然後單擊“Microsoft 符號伺服器”“符號路徑”

設定符號路徑

  1. “呼叫堆疊”視窗中,從快捷選單中選擇“符號設定”

    將開啟“選項”對話方塊並顯示“符號”頁。

  2. 單擊“符號設定”

  3. “選項”對話方塊中單擊“資料夾”圖示。

    “符號檔案(.pdb)位置”框中將出現一個游標。

  4. 鍵入所除錯的計算機上的符號位置的目錄路徑名。 對於本地除錯,此計算機指您的本地計算機。 對於遠端除錯,此計算機指遠端計算機。

  5. 單擊“確定”關閉“選項”對話方塊。

原文及英文請檢視:http://msdn.microsoft.com/zh-cn/library/a3694ts5.aspx

相關推薦

Visual studio如何使用“呼叫堆疊視窗檢視除錯資訊

如何:使用“呼叫堆疊”視窗 使用“呼叫堆疊”視窗可以檢視當前堆疊上的函式或過程呼叫。 “呼叫堆疊”視窗顯示每個函式的名稱以及編寫它所用的程式語言。 函式或過程名稱可能包含可選資訊,如模組名稱、行號、引數名稱、型別和值。 可以開啟或關閉這些可選資訊的顯示。 一個黃

Visual Studio的輸出視窗上輸出除錯資訊的函式

Visual Studio的輸出視窗上輸出文字的函式 當你編寫非控制檯程式時,比如GUI程式,像std::cout 和 printf()這樣的函式,就無法使用了,(不是使用了,程式就編譯不了

使用Visual Studio Code開啟瀏覽器檢視HTML檔案

vscode出來之前一直使用sublime,後者在編寫HTML檔案時可以通過點選滑鼠右鍵,找到open in browser來啟動系統預設瀏覽器,而vscode卻沒有這個功能,除錯和預覽起來比較麻煩。不過可以通過配置tasks.json檔案來解決這個問題。 一、首先按下Ctrl+shift+p輸入

mysql的cmd視窗檢視資料庫資訊

  1.mysql -uroot -p 123456 2.show databases; 檢視全部資料庫 3.select database(); 檢視當前資料庫 4.show variables like 'port'; 5. 檢視當前資料庫大小,如檢視springdata庫大小

Visual Studio 2017中使用SourceLink除錯ASP.NET Core原始碼

背景 當我們在學習ASP.NET Core或者除錯ASP.NET Core程式的時候,有時候需要除錯底層程式碼,但是當我們在Visual Studio中除錯程式的時候,由於一些基礎庫或者第三方庫缺少pdb檔案,所以除錯這些庫的程式碼的時候,會出現斷點不能進去的情況。 例如,在如下程式碼中,我們希望除錯

OpenCV 在C#下的版本EmguCV 3.3.0在Visual Studio 2017 下的安裝除錯

Emgu CV是基於opencv的庫在C# 下再次封裝的庫。可以方便的在C#下除錯。 第一次執行發現不是一次成功,在此記錄除錯方法,供日後參考。 按照其官網文件說明,安裝後,找到Emgu\emgucv-windesktop 3.3.0.2824\Solution\Windows.De

visual studio code快速生成Html頭部資訊和程式碼補全

Child: > nav>ul>li <nav> <ul> <li></li> </ul> </nav>

iOS 如何在 Release 環境下檢視除錯資訊

最近老在釋放環境下直接除錯,發現一個很不爽的問題,不能直接檢視除錯資訊,一些東東必須NSLog下才能列印看到的,然後po打印出來東西還都是nil,第一反應還以為傳回來值為空的。 此時我們需要在Build Setting中的優化級別重新設定下,讓其同調試模式下一樣的 正常下

Visual Studio Debug 教程 之 遠端除錯

有陣子沒有更新這個主題,可能讓大家誤認為已經結束了,其實除了這一篇,後續還會有一些。 還是儘量本著善始善終的原則,我要把這個主題給講完,並且在結束的時候一定會讓大家知道的。 通過大家的反饋來看,這個系列確實也幫助到了不少的人,另外我自己在這個過程中,也對

visual studio 2005 ASP.net 斷點除錯方法

下面有從淺入深的6個問題,您可以嘗試回答一下 一個如下的語句for (int i = 0; i < 10; i++){if (i == 5)j = 5;},什麼都寫在一行,你怎麼在j=5前面插入斷點 在一個1000次的迴圈體內部設定斷點,你希望當迴圈進行到900次後中斷,怎麼才能做到呢?

visual studio 編輯器視窗分屏

今天發現了 visual studio 的編輯器視窗還可以玩分屏,也就是開兩個編輯器,這樣開發起來效率更高,特地記錄一下。 效果入下: 發現其他提高開發效率的方法後再來更新。 更多有關提高 visual studio 開發效率的方法見下面的參考文章:

關於VS2017 已啟用 Visual Studio 中的 Chrome 指令碼除錯解決辦法

轉至:http://blog.csdn.net/lilinoscar/article/details/79114721 每當除錯專案時,都是重新開啟一個瀏覽器視窗,而且關閉除錯後,也會關閉視窗,很麻煩,如下圖: 如何關閉Chrome指令碼除錯呢? 解決辦法:

向VS的Output視窗輸出除錯資訊

要求: Debug版輸出,Release版不輸出。 相容Unicode版本。 /* 1. 需要標頭檔案windows.h和tchar.h */ #ifdef _DEBUG void XdPrint(_TCHAR* format, ...) { va_list args;

Visual Studio 2013 或VS2015 無法除錯Revit外掛程式碼的解決辦法

有些開發者在用VS2013 或VS2015除錯外掛程式碼時,發現無法跟蹤除錯。 但是在VS2010,VS2012下沒有問題。一個可能的原因是Revit載入的其它外掛的一個相容性的問題。 VS2013由於引進了新的一些除錯功能,導致對舊的一些除錯模式不支援了。嚴格的是說是VS新

vs2010在輸出視窗輸出除錯資訊

有個時候,我們需要檢視析構除錯資訊,一般都會去掉system(“pause”),而想在除錯視窗檢視除錯資訊,根據網上有些人的步驟,新增標頭檔案“windows.h”,使用函式OutputDebugString(L"i

如何:使用“呼叫堆疊視窗

使用“呼叫堆疊”視窗可以檢視當前堆疊上的函式或過程呼叫。 “呼叫堆疊”視窗顯示每個函式的名稱和編寫它所用的程式語言。函式或過程名可能伴隨有可選資訊,如模組名、行號、位元組偏移量以及引數的名稱、型別和值。可以開啟或關閉這些可選資訊的顯示。 一個黃色箭頭標識執行指標當前所位於

Visual Studio 除錯小技巧-從檢視視窗得到更多資訊

在使用Visual Studio開發除錯程式時,我們經常需要開啟檢視視窗(Watch)來分析變數。有時在檢視視窗顯示的內容不是很直觀。為了能從檢視視窗的變數中得到更多的資訊,我們需要一些小的技巧。下面是幾個例子。1. Windows訊息在開發除錯介面程式時,我們經常需要檢視訊

程式除錯的時候利用Call Stack視窗檢視函式呼叫資訊

http://blog.csdn.net/augusdi/article/details/6407422 http://blog.csdn.net/zhg598242449/article/details/7591123 首先介紹一下什麼叫呼叫堆疊:假設我們有幾個函式

XZ_iOS之崩潰資訊檢視呼叫堆疊除錯技巧

寫一個demo,製造一個崩潰資訊:嘗試給NSArray在第一個位置插入一個空物件;以此為例,查詢崩潰的原因。 下圖中的崩潰資訊有一個標準的名字叫呼叫堆疊,既然是堆疊,那麼先執行的肯定在下面,後執行的在上面。 在真機上只顯示錯誤資訊,不顯示詳細的呼叫堆疊內容

visual studio 2012 無法找到除錯資訊

使用visual studio 2012 開發opencv的程式,配置好opencv後,編譯並執行 出現無法找到“。。。”的除錯資訊,或者除錯資訊不對。未使用除錯資訊生成二進位制檔案。是否繼續? 截圖如下: 解決方法: 右鍵專案--屬性--連結器--除錯--生成除錯資訊-