BUG 和BUG_ON
来源:互联网 发布:2016开淘宝店卖什么好 编辑:程序博客网 时间:2024/06/05 08:25
调试的时候很有用的东西:dump_stack
使用前,先在内核配置中把kernel debug选上:
make menuconfig:
kernel hacking-->
kernel debug
kernel hacking-->
kernel debug
作用:一些内核调用可以用来方便标记bug,提供断言并输出信息。最常用的两个是BUG()和BUG_ON()。当被调用的时候,它们会引发oops,导致栈的回溯和错误信息的打印。为什么这些声明会导致 oops跟硬件的体系结构是相关的。大部分体系结构把BUG()和BUG_ON()定义成某种非法操作,这样自然会产生需要的oops。你可以把这些调用当作断言使用,想要断言某种情况不该发生 :
if (bad_thing)
BUG();
或者使用更好的形式:
BUG_ON(bad_thing);//BUG_ON是一个函数接口,一般开发人员自己实现相关函数内容,一般用来判断内核是否出现问题,如果参数为真的话,证明内核出现了//bug,打印BUG信息,然后调用PANIC函数,让系统panic。
可以用panic()引发更严重的错误。调用panic()不但会打印错误消息而且还会挂起整个系统。显然,你只应该在极端恶劣的情况下使用它:
if (terrible_thing)
panic("foo is %ld/n", foo);
有些时候,你只是需要在终端上打印一下栈的回溯信息来帮助你测试。此时可以使用dump_stack()。它只在终端上打印寄存器上下文和函数的跟踪线索:
if (!debug_check) {
printk(KERN_DEBUG "provide some information.../n");
dump_stack();
}
- BUG 和 BUG_ON
- BUG 和 BUG_ON
- BUG 和 BUG_ON
- BUG 和BUG_ON
- linux内核中的BUG 和 BUG_ON
- linux内核中的BUG 和 BUG_ON
- BUG BUG_ON dump_stack
- panic 和 bug_on
- linux panic 和 bug_on
- panic和bug_on
- linux panic 和 bug_on
- BUG_ON()
- BUG_ON
- linux中BUG_ON和WARN_ON解析
- BUG_ON()和WARN_ON()的用法
- Linux内核调试之使用BUG_ON 和dump_stack
- BUG_ON && WARN_ON
- bug和bug修复
- HDU 4611 Balls Rearrangement 解题报告
- NetBeans7.0中文乱码解决办法
- cmd中如何切换到指定盘符的指定文件夹目录
- java中的Synchronized 实现
- UVa 299 - Train Swapping
- BUG 和BUG_ON
- Java偏向锁实现原理(Biased Locking)
- (转)升级到cocos2d-x 2.0.2代码差异(重点为调用方法)
- linux 配置服务的命令service
- Java轻量级锁原理详解(Lightweight Locking)
- apk 的反编译
- (转)Cocos2dx中响应Android的Back(返回)与Menu(小房子)事件 && Cocos2dx自动释放粒子内存函数
- 22-EditPlus设置html文档的编码方式为utf-8,显示为乱码的解决
- 用 Maven 管理项目文件周期的技巧