调试Android的kernel和上层的小方法
发布时间:2021-11-25 18:27:21 所属栏目:教程 来源:互联网
导读:对于Android的kernel 代码的调试 一开始我总是用用printk来打印信息,当我调试好代码以后,发现打印的信息由太多,况且有不成需要了,这样我要不用这些打印信息就得一个一个的隐去做起来好麻烦的,呵呵,我们研发时间是很宝贵的啊,用在这些里面这是不值得啊
对于Android的kernel 代码的调试 一开始我总是用用printk来打印信息,当我调试好代码以后,发现打印的信息由太多,况且有不成需要了,这样我要不用这些打印信息就得一个一个的隐去做起来好麻烦的,呵呵,我们研发时间是很宝贵的啊,用在这些里面这是不值得啊,于是我就想了一个方法,想想我只要用 一个定义就可以搞定,贴代码: #if 1// #define pr_debug(x...) printk("[Soc-core.c::]:: "x) #define ur_debug(x...) printk(x) //pr_debug("..entering %sn", __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 呵呵呵,你的调试痕迹就会有在你的眼前哦 ![]() (编辑:PHP编程网 - 黄冈站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |