現在我一直在使用GDB反彙編一個二進制文件,並檢查出不同的寄存器和什麼。有沒有簡單的命令來檢查堆棧中的所有內容?這可以限制在一個函數中的所有內容嗎?如何使用GDB檢查堆棧幀?
回答
對於當前堆棧幀:
- 信息幀列出關於幀(其中東西存儲器啓動等)
- 信息ARGS列表函數的自變量一般信息
- info locals列出存儲在幀中的局部變量
bt
(或backtrace
)會給你一個調用堆棧。frame <args>
會給你關於堆棧中特定幀的信息。info locals
可以給你關於棧上任何局部變量的信息。
可以與x/10x $sp
此查看堆棧的內容將打印堆棧頂部的10個元素。
這是什麼版本的GDB?我不能讓GDB使用寄存器作爲命令參數的GDB 7.7-0ubuntu3.1 – nightpool 2014-11-14 16:36:13
我@nightpool適用於7.7.1-0ubuntu5〜14.04.2 – 2015-07-10 19:20:33
這是答案告訴你如何實際看堆棧中的字節框架,我有一些麻煩找出如何做。謝謝! – 2017-09-12 11:35:00
- 1. 使用GDB檢查機器堆棧
- 2. 使用GDB檢查堆棧(x86)
- 3. 使用GDB檢查堆棧。什麼是x/[n] [x] $ [reg]?
- 4. 如何使用GDB查看存儲在堆棧上的變量
- 5. 檢查堆棧
- 6. GDB損壞的堆棧幀 - 如何調試?
- 7. 如何使用gdb來探索堆棧/堆?
- 8. GDB如何確定堆棧的底部?
- 9. 構建調用堆棧,如gdb所示
- 10. gdb繼續執行,直到調用堆棧上的新幀
- 11. gdb:檢查堆棧和小尾數澄清
- 12. 在gdb中檢查堆棧的正確方法是什麼?
- 13. 堆棧幀和堆棧指針
- 14. 如何檢查堆棧是否爲空
- 15. 檢查lldb幀堆棧上系統調用的參數
- 16. 如何溢出堆棧而不推送新的堆棧幀?
- 17. 獲取堆棧幀
- 18. 打印堆棧幀
- 19. 訪問堆棧幀
- 20. 檢查使用gdb
- 21. 如何檢查windbg中特定調用堆棧幀上的寄存器值
- 22. 自動化GDB在特定斷點處打印堆棧幀
- 23. DSF GDB提取有關堆棧幀的數據
- 24. 如何在計算Ackermann時檢查堆棧使用情況
- 25. 如何使用堆棧檢查字符串
- 26. 檢查堆棧組件
- 27. 如何從異常「跳」到堆棧幀?
- 28. 如何在gcc中恢復堆棧幀?
- 29. 調用堆棧上的異常處理堆棧幀的順序
- 30. 需要堆棧幀,ARM
這應該是對你有所幫助:http://cs.nyu.edu/courses/spring07/V22.0474-001/misc/gdb-refcard.pdf。您始終可以使用「幀」命令在幀之間跳轉。 – dicaprio 2010-05-05 05:58:38