Linux内核生成为高地址向地址增长.
在sp的最下底部,存放着struct thread_info结构体.
可以用递归的方法获取堆栈增长方式
static void find_stack_direction ()
{
static char *fisrt_addr = NULL;
auto char tmp;
int stack_dir = 0 ;
if (addr == NULL)
first_addr = &tmp ;
find_stack_direction ();
}
else
{
if (&tmp > addr)
stack_dir = 1; /*
Stack grew upward. */
else
stack_dir = -1; /*
Stack grew downward. */
}
}
本文介绍了一种通过递归方法确定Linux内核中堆栈增长方向的技术。该方法利用了一个临时变量的地址与首次调用时记录的地址进行比较来判断堆栈是向上还是向下增长。
3826

被折叠的 条评论
为什么被折叠?



