文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>内核堆栈溢出

内核堆栈溢出

时间:2010-07-13  来源:netkisser

Linux内核的堆栈一般是8K,所以在写内核程序的时候一定要小心,防止函数递归的出现,递归可能导致内核堆栈溢出。 1. 查看Linux内核线程堆栈,源代码里一般定义为 #define THREAD_SIZE (2*PAGE_SIZE) 2. 如果怀疑有堆栈溢出的情况,可以在代码里面加入如下的代码来检查当前内核堆栈。 uint32 mystack_used (void) 
{
      char a;
      return (2*PAGE_SIZE - ((long)&a & ((2*PAGE_SIZE)-1)));
}
  void myfunc() {   .............   printk("Kernel Stack Total %d Used: %d\n",(2*PAGE_SIZE), mystack_used());   ............. } 如果有以下信息产生,那可能就要堆栈溢出了。 Kernel Stack Total 8192 Used: 609
Kernel Stack Total 8192 Used: 1009
Kernel Stack Total 8192 Used: 609
Kernel Stack Total 8192 Used: 1009
Kernel Stack Total 8192 Used: 1409
Kernel Stack Total 8192 Used: 1809
Kernel Stack Total 8192 Used: 2209
Kernel Stack Total 8192 Used: 2609
Kernel Stack Total 8192 Used: 3009
Kernel Stack Total 8192 Used: 3409
Kernel Stack Total 8192 Used: 3809
Kernel Stack Total 8192 Used: 4209
Kernel Stack Total 8192 Used: 4609
Kernel Stack Total 8192 Used: 5009
Kernel Stack Total 8192 Used: 5409
Kernel Stack Total 8192 Used: 5809
Kernel Stack Total 8192 Used: 6209
Kernel Stack Total 8192 Used: 6609
Kernel Stack Total 8192 Used: 7009
相关阅读 更多 +
排行榜 更多 +
泡龙大闯关安卓版

泡龙大闯关安卓版

冒险解谜 下载
割草派对安卓版

割草派对安卓版

飞行射击 下载
堡垒攻防战安卓版

堡垒攻防战安卓版

飞行射击 下载