调试Android的kernel和上层的小技巧


对于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

呵呵呵,你的调试痕迹就会有在你的眼前哦

相关内容