簡體   English   中英

給定eip時訪問ebp

[英]Access ebp when given eip

我正在嘗試開發運行時堆棧跟蹤程序。 我有一個函數,可以在程序被跟蹤段故障時返回EIP地址。 如何返回當前函數的ebp(正在觀察的程序崩潰),以便可以開始跟蹤?

無法將指令指針轉換為堆棧幀指針。 可以使用不同的堆棧地址多次(甚至遞歸地)調用同一函數。 這就是擁有調用堆棧的全部要點。 如果您有故障轉儲文件(核心文件等),則應包含所有寄存器的轉儲。 如果需要寄存器值,則必須從此處讀取它們。

在段錯誤時,當前的ebp和esp(以及所有其他寄存器)在ucontext中可用,它作為第三個參數傳遞給信號處理程序。 ucontext中的具體位置是特定於OS和CPU的。

暫無
暫無

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

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