我正在調查WinDBG中的Windows轉儲文件。我可以通過命令.frame來切換調用堆棧幀,但是我發現寄存器始終包含最後一個上下文。 我的意思是,如果有可能恢復屬於特定調用堆棧框架的上下文不屬於上下文的上下文?如何檢查windbg中特定調用堆棧幀上的寄存器值
6
A
回答
7
如果您正在調試的64位的目標,你可以使用:
.frame /r
要在幀查看寄存器。該信息基於圖像中的展開數據,因此非常可靠。您還可以更改上下文:
.frame /c
在x86上,沒有展開信息,所以此技巧無法使用。 .frame仍然會向你顯示寄存器的內容,但它不太可能是正確的(它基本上只是運氣正確)。
0
請嘗試findthis.py,這是通過分解調用堆棧中每個幀的序言來獲得CFI(調用幀信息)的一種方式。
http://nick.luckygarden.org/find-this-ptr-within-a-callstack-in-a-dump-file/
相關問題
- 1. 檢查特定幀中的寄存器
- 2. 如何使用GDB檢查堆棧幀?
- 3. 堆棧上EBP寄存器的大小?
- 4. 堆棧指針寄存器值
- 5. 從堆棧導航到CDB/WinDbg中的託管堆棧中的堆棧幀
- 6. 定義寄存器堆棧陣列
- 7. 如何獲取特定幀的寄存器值?
- 8. 檢查lldb幀堆棧上系統調用的參數
- 9. 如何將堆棧指針寄存器中的值存儲到存儲器(8085)?
- 10. 恢復用戶堆棧/寄存器
- 11. 如何查看寄存器上的值?
- 12. 調用堆棧上的異常處理堆棧幀的順序
- 13. 如何在沒有%rbp寄存器的情況下重新分配堆棧幀?
- 14. 使用gdb檢查寄存器的值
- 15. 將XMM寄存器推入堆棧
- 16. 如何在ARM Linux上檢查網卡的寄存器值?
- 17. gdb如何從堆棧中的所有幀中找到所有寄存器的值
- 18. 如何在CTRL + Break的情況下查看WinDbg中的實際調用堆棧
- 19. 如何讀取AM335X上的特定寄存器值
- 20. 基於寄存器+堆棧的虛擬機將如何工作?
- 21. 如何釋放先前堆棧幀的存儲器中的Javascript
- 22. 查看寄存器以外的堆棧內容
- 23. 檢查C++中Lua堆棧項的值
- 24. 我該如何窺視堆棧和寄存器
- 25. 堆棧指針寄存器如何工作
- 26. 檢查堆棧
- 27. 堆棧幀內存分配
- 28. 嘗試使用引腳工具從堆棧中打印寄存器的值
- 29. Visual Studio中 - 缺失的源文件,同時檢查調用堆棧幀
- 30. 堆棧(s),ActionScript中的寄存器ByteCode AVM2,哪裏都有?
明白了。我只能間接地找到棧中的寄存器。 – 2012-04-13 06:05:40