这是使用 Minix (http://www.minix3.org)。
对于 Uni 的一个项目,我正在使用 fkey 创建一个堆栈跟踪。我可以访问进程表,并且正在打印进程计数器、堆栈指针和基指针。现在,我被卡住了——我需要能够打印出正在调用的子例程的名称,因为我在堆栈调用中退一步。
例如:我有 proc “getty”,SP:0x1669 PC:0x41B0 BP:41B4
我的解释:
SP 指向堆栈指针当前所在的位置 - 执行中的某个位置。
PC 指向下一条要执行的指令,每步加一
BP 指向当前子程序的顶部
我将如何从这些内存地址获取子例程名称和/或我将如何退后一步通过堆栈?