1.编译strace
进入strace-4.5.15目录下要把strace-4.5.15去掉,红色框框所以我们输入-p1,意思就是不要第一个目录
[email protected]:/work/tools/strace-4.5.15$ patch -p1 < …/strace-fix-arm-bad-syscall.patch
2.使用新版本的busybox使用strace调试
因为用新版的的busybox装载我们的led驱动会有一点问题
(使用新的busyboix编译,因为有些问题我们用strace调试)
这里下的1.20版本
make 有错误直接把对应的选项去掉
备份再把新的文件拷贝过来
卸载驱动的时候就有问题报错了
没有这个目录给你建一个就好了
我们用strace命令来跟踪一下
vi log.txt
创建之后又有新的错误
再用strace来看一下:
再来创建一下文件就成功了!
3.strace原理
它的原理strace是一个父进程,他创建一个子进程就是rmmod first_drv
swi指令会导致swi系统异常,进入内核态处理sys_open
…write read
vector_swi先判断一下子进程有没有被父进程跟踪
如果被跟踪调用syscall_trace,发信号给父进程strace,父进程处理完后(记录)让子进程继续运行