一、addr2line
当Linux内核死机时,根据吐核信息,结合addr2line可以寻找出现问题的位置(文件、行号,函数等)信息。
1、首先编译内核,添加编译选项CONFIG_DEBUG_INFO=y。
2、其次寻找System.map文件。一般在编译的镜像输出目录。如:out/target/product/xxxx/obj/kernel/msm-4.4
3、根据吐核信息结合System.map文件查找相应函数的地址。吐核信息一般会吐出出错函数的函数名。
如System.map内容
这里就可以根据函数名找到相对应的地址。
4、然后找到编译内核时使用的addr2line,结合镜像输出目录中的vmlinux,就可以获取到想要的信息。
如
二、高通平台调试gpio
1、进入/sys/class/gpio目录。
2、导出需要调试的gpio节点。
如:echo 98 > export
3、设置gpio方向。echo in/out > direction
如: echo out > direction
4、设置gpio引脚的值。
echo 1 > value
此时可以测试到对应gpio引脚位高电平。
echo 0 > value
此时可以测试到对应gpio引脚位低电平。
三、adb remount 失败
使用adb remount时失败,打印:
remount of the / superblock failed: permission denied
remount failed
解决办法:
1、adb disable-verity
2、重启
四、查询input上报时间
getevent -r /dev/input/event4