我們試圖使用windbg分析一個w3wp內存轉儲,並且我們發現w3wp進程由於堆棧溢出而崩潰。我加載了psscor4.dll並通過發出!clrstack來獲得調用堆棧。但我也想知道傳遞給方法的參數。 如果我發出「!clrstack -p」或「!clrstack -a」,那麼對於所有參數和局部變量,我們得到<無數據>。 任何想法,爲什麼我們得到<沒有數據>而不是參數和局部變量的實際值?!clrstack -p沒有給出調用堆棧中的方法的參數值
11
A
回答
9
如果您正在運行發佈版本,您通常無法跟蹤當地人和參數,因爲它們已經過優化並存儲在寄存器中。如果您確實需要它,您可以查看JIT編譯代碼並在寄存器中查找值,但這可能需要大量的記錄。
14
調試優化代碼的樂趣就在這裏。如果你使用!sosex.mdv,你至少會得到你的本地/參數的數據類型。然後,您可以運行!sos.dso或!sosex.mdso以查看堆棧中的對象及其類型。通過這種方式來追蹤論證通常不是非常困難,儘管它並不總是奏效。
相關問題
- 1. !ClrStack顯示非託管調用堆棧
- 2. HTRACE沒有顯示出調用堆棧
- 3. Android中的方法調用堆棧
- 4. Lua:調用不帶參數的error()時沒有堆棧跟蹤?
- 5. 的Java方法調用堆棧複製
- 6. 堆棧溢出調用堆棧#timememoryfunctionlocation 10.0000143728
- 7. 沒有給出所需參數的值
- 8. 遞歸方法中的堆棧溢出
- 9. windbg沒有顯示調用堆棧源參數
- 10. 調用保留調用堆棧的私有方法
- 11. Ng-View沒有給出輸出「RangeError:超出最大調用堆棧大小」
- 12. Printf參數沒有壓入堆棧
- 13. c#獲取調用方法沒有堆棧跟蹤
- 14. 堆棧溢出(參數:0x00000001,0x00442FF8)
- 15. tensorflow模塊沒有堆棧方法
- 16. P /調用「wglChoosePixelFormatARB」不平衡堆棧
- 17. 有沒有Visual Studio的插件可以顯示調用堆棧的方法?
- 18. 沒有遞歸函數調用會發生堆棧溢出嗎?
- 19. 有沒有辦法在javascript中動態查看調用堆棧?
- 20. 調用堆棧中的方法/函數返回類型
- 21. 由方法調用引起的堆棧溢出錯誤
- 22. 從堆棧導航到CDB/WinDbg中的託管堆棧中的堆棧幀
- 23. 在方法調用中引發堆棧溢出異常
- 24. 打印堆棧跟蹤參數的值
- 25. 獲取堆棧跟蹤參數的值?
- 26. main函數的C函數沒有推動棧中的堆棧
- 27. DebugDiag調用堆棧不顯示調用堆棧中函數的行數
- 28. 實現給定堆棧的最有效的方法
- 29. 在javascript中使用函數堆棧調用非遞歸方法
- 30. 遞歸Java方法給出堆棧溢出錯誤
我想我明白了,直到你問這個問題的地步:「任何想法,爲什麼我們要取代參數和局部變量的實際值?」你能改說嗎? –
@dtryon,我現在已經更新了這個問題。感謝您指出。 – arul