2018年3月31日

32、应用调试之编写输入模拟器

摘要: 1. 产品要经过测试才能发布,一般都是人工操作,比如手机触摸屏、遥控器2. 操作过程中发现错误,要再次复现,找到规律,修改程序3. 能否在驱动程序里把所有的操作记录下来,存为文件 当出错时,可以通过文件里的数据来"复现"输入 input_event上报的时候保存数据 1、使用之前仿照printk写的 阅读全文

posted @ 2018-03-31 13:50 拉风摊主 阅读(134) 评论(0) 推荐(0) 编辑

31、应用调试之自制系统调用、编写进程查看器

摘要: 应用程序调用的read、open这些函数是glibc实现的,在调用的时候从用户态切换为内核态,其实质就是执行一条swi指令,并带有一个value,swi指令执行的时候会产生一个异常,CPU会跳到异常处理函数(vector_swi)去执行,会根据导致异常的指令里面的value调用对应的函数,比如sys 阅读全文

posted @ 2018-03-31 13:47 拉风摊主 阅读(164) 评论(0) 推荐(0) 编辑

30、应用调试之配置内核输出应用程序的段错误信息

摘要: 应用程序在执行的时候,如果驱动程序出现问题,会打印oops或者堆栈分析信息,也是是从在内核态下会打印错信息,而如果应用程序本身有问题,其执行时在用户态,只会提示段错误信息,这时候需要修改内核,让其支持应用出错时打印更多信息,根据oops信息搜索“”“Unable to handle kernel ” 阅读全文

posted @ 2018-03-31 13:47 拉风摊主 阅读(351) 评论(0) 推荐(0) 编辑

29、应用调试之使用GDB来调试应用程序

摘要: 说明:gdb可以实现源代码单步调试 原理: 1、gdb在PC机上运行,gdbserver在arm开发板上运行,gdbserver在开发板上相当于父进程,应用相当于子进程,PC上gdb发命令给gdbserver,gdbserver在发命令给应用子进程 2、gdb在运行的时候需要一个带有调试信息的app 阅读全文

posted @ 2018-03-31 13:46 拉风摊主 阅读(189) 评论(0) 推荐(0) 编辑

28、应用调试之strace命令来跟踪系统调用

摘要: strace是个工具,在使用时需要先按照,见韦东山书籍: 1、tar xjf starce-4.5.15.tar.bz2 2、cd strace-4.5.15/ 3、patch -p1 < ../strace-fix-arm-bad-syscall.patch 4、./configure --hos 阅读全文

posted @ 2018-03-31 13:44 拉风摊主 阅读(490) 评论(0) 推荐(0) 编辑

导航