簡體   English   中英

WinDbg和內聯函數

[英]WinDbg and inlined functions

我正在嘗試調試故障轉儲,我想檢查堆棧上某些變量的值。 問題是在發行版本中已經內聯了一些方法,但是我想轉儲它的變量(dv)。

如果我進入堆棧框架並執行dv命令,它會向我顯示該特定函數的所有變量,而不是內聯調用中的所有變量。

我可以執行uf(unassmeble函數)命令來查看匯編代碼,但是要弄清楚事情需要做很多工作。

在優化的版本中通常是不可能的。 優化器可能會決定不為變量分配內存,因此研究匯編代碼以找出哪個寄存器是變量是唯一的方法。 此外,如果打開“忽略幀指針”開關,則調試器將無法正確顯示堆棧上分配的任何變量。

您可以嘗試添加代碼以將感興趣的變量記錄到文件中。

不幸的是,您將不得不通過拆卸來解決這個問題。 如果您對此還不滿意,那么現在是開始練習的好時機,這是調試棘手問題的一項寶貴技能。

此外,雖然現在對您無濟於事,但Visual Studio 2012生成的PDB文件格式現在可以更好地跟蹤內聯函數。 因此,將來在大多數情況下應減輕這種特殊情況。 您可以在此處閱讀有關此功能的更多信息:

http://dotnet.dzone.com/news/debugging-optimized-code

暫無
暫無

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

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