strace工具跟踪系统调用和信号

 

* 掌握使用strace工具跟踪系统调用和信号的方法

* 掌握各类内存测试工具,比如memwatch(是不是和那个)

* 掌握使用库函数backtrace和backtrace_sysbols来定位段错误

一、使用strace工具跟着系统调用和信号

1、strace介绍和移植

①、介绍

strace是一个很有用的真的、学习、调试工具。使用时无需重新编译程序,这使得可以用来跟踪没有源代码的程序。系统调用和信号时发生在用户空间和内核空间边界处的事件,检查这些边界事件有助于隔离错误、检查完整性、跟踪程序。

使用strace工具来执行程序时,它会记录程序执行过程中的调用的系统调用、接受到的信号。通过查看记录结果,可以知道程序打开了哪些文件(open)、打开是否成功、对文件进行了哪些读写操作(read、write、ioctl等)、影射了哪些内存(mmap)、向系统申请了多少内存等。

②、strace的移植。

下载 strace-4.5.15.tar.bz2,和arm平台补丁程序strace-fix-arm-bad-syscall.patch

#tar

#cd

#patch -p1 < ../strace-fix-arm-bad-syscall.patch

然后,编译

#./configure --host=arm-linux CC=arm-linux_gcc

#make

这时,将在目录下生成名为strace的可执行程序,将它直接复制到开发板根文件系统上既可使用。

2、strace调试程序。

①、使用strace定位警告信息

#strace -o xxx.log xxx &

这样将会在本目录下生成xxx.log文件。

②、使用strace 来测量程序的执行时间。当不知道程序在哪里突然执行时间过长时。

#strace -r -o xxx.log xxx

你可能感兴趣的:(strace工具跟踪系统调用和信号)