对于android的kernel 代码的调试 一开始我总是用用printk来打印信息,当我调试好代码以后,发现打印的信息由太多,况且有不成需要了,这样我要不用这些打印信息就得一个一个的隐去做起来好麻烦的,呵呵,我们研发时间是很宝贵的啊,用在这些里面这是不值得啊,于是我就想了一个方法,想想我只要用 一个定义就可以搞定,贴代码:
#if 1//
#define pr_debug(x...) printk("[Soc-core.c::]:: "x)
#define ur_debug(x...) printk(x)
//pr_debug("..entering %s\n", __func__);
#else
#define pr_debug(x...) do {} while(0)
#define ur_debug(x...) do {} while(0)
#endif
如果我想打印信息就用pr_debug("yuyu'\n);打印yuyu,嘿嘿
当我不需要的时候,我就把上面的#if 0 就可以达到吧我添加的打印信息给屏蔽掉了
嘿嘿 方便吧:
下面讲讲我调试android的hal层和应用架构层 以及简单的应用的打印的小技巧
android把全部标准输入输出都重定向了。只有他自己的LOGE, LOGV, LOGI才能打印的,但是LOGE是始终打开的,这样也是和我调试内核一样的问题,于是我在调试某个cpp文件只要添加
#if 1
#define LOGX LOGE
#endif
于是就可以用自己的LOGX的打印信息了
LOGX(">>WANG WANG WANG WANG WANG WANG WANG >>>>>>>>>>IN_CALL line=%d;", __LINE__);
如果我调试完毕不想让打印出来,就是#if 0
就可以的了哦
嘿嘿,又不影响其他代码的调试,同时又是可以保留自己的调试痕迹,下次调试的时候,打开#if 1
呵呵呵,你的调试痕迹就会有在你的眼前哦
如果大家有好的记得给我留言也告诉我一下,要互相交流!