我有一個不完整的stacktrace停止在一個已知的庫(linux i686體系結構)。爲了確定上次調用的函數,我試圖將$ eip作爲gdb的輸出映射到由「objdump -d library.so」生成的文件中的地址。 我想我可以使用gdb中「info shared」的From地址輸出,以及$ eip來計算偏移量,然後我可以將它轉換爲objdump -d輸出反彙編文本部分的偏移量? 不確定這種方法是否合理,但是在一個簡單的測試工具應用中使用共享庫來測試它並不會給我一個正確函數中的地址。 任何幫助非常感謝。
0
A
回答
0
我想我可以使用gdb中「info shared」的From地址輸出和$ eip來計算偏移量,然後我可以將它轉換爲反彙編文本部分的偏移量objdump -d輸出?
是的,那正是你需要做的。
GDB顯示中的From
地址告訴您共享庫的.text
部分位於何處。
readelf -S foo.so | grep '\.text'
會告訴您在foo.so
本身的抵消.text
。從另一箇中減去一個,你得到該共享庫的重定位(它將是頁對齊的)。
現在從GDB的$eip
,減去拆遷,你會得到將爲foo.so
匹配nm
和objdump
輸出的地址。
但是,GDB已經在內部完成了上述所有步驟。如果無法推斷出哪個功能$eip
結束了,則不應指望手動執行這些步驟會產生更好的結果。
相關問題
- 1. 如何將softMax輸出映射到MXNet中的標籤
- 2. 'SUM()' 中的輸出映射
- 3. 如何將Emacs命令M-d重新映射到宏M-b,M-d中?
- 4. 將Jsonpath輸出映射到POJO列表
- 5. 如何標準化範圍[a,b]到[c,d],其中a映射到d,b映射到c
- 6. 如何使用EzAPI將輸入映射到MergeJoin轉換中的輸出列?
- 7. 「GCC -S」,從「objdump的-D」
- 8. 如何在pentaho中將輸入映射到輸出文件從excel到csv?
- 9. '輸入/輸出'端口如何映射到內存中?
- 10. 如何將散列函數輸出映射到bloomfilter索引?
- 11. 將參數映射到OLEDB目標中的輸出列?
- 12. 如何將特定字段添加到由xstream映射的輸出xml中
- 13. 如何映射JSON輸出[的WebMethod]到d3.js條形圖
- 14. 庫函數objdump輸出
- 15. 如何將映射作爲基礎添加到新映射中?
- 16. TwidoSuite計數器:如何將D輸出連接到R輸入?
- 17. 如何讓objdump -D在Windows中只顯示特定的功能?
- 18. MyBatis - 將存儲的proc輸出參數值映射到POJO
- 19. 映射器何時將其輸出存儲到本地硬盤?
- 20. 熊貓:將輸入向量展開/映射到N個輸出
- 21. 如何將Hive表映射到HBase中?
- 22. 如何將輸入映射到我的datalist選項?
- 23. 如何將內存映射到散列映射到文件
- 24. 如何將數據庫XML輸出映射到JAXB派生的對象模型
- 25. 如何將文檔映射到控件
- 26. 如何將「/ test/test」映射到映射到「/ test」的控制器的方法?
- 27. hadoop過濾映射輸出
- 28. 如何將列表映射到RecyclerView
- 29. 如何將範圍映射到值?
- 30. 如何使用Python中的公鑰將值映射到值