strace工具是一个非常强大的工具,是调试程序的好工具。要移植到arm平台,就需要使用交叉编译工具编译生成静态链接的可执行文件。具体步骤如下:

1.下载 strace-4.5.16.tar.bz2;下载网址是:http://ncu.dl.sourceforge.net/project/strace/strace/4.5.16/strace-4.5.16.tar.bz2

2.解压。对于ARM平台,必须打上一个补丁,

 

41     /*
1042      * We only need to grab the syscall number on syscall entry.
1043      */
1044     if (regs.ARM_ip == 0) {
1045         /*
1046          * Note: we only deal with only 32-bit CPUs here.
1047          */
1048 ****************************************************************
1049         if (!(tcp->flags & TCB_INSYSCALL) &&
1050             (tcp->flags & TCB_WAITEXECVE)) {
1051                 /* caught a fake syscall from the execve's exit */
1052                 tcp->flags &= ~TCB_WAITEXECVE;
1053                 return 0;
1054             }
1055 ****************************************************************
1056         if (regs.ARM_cpsr & 0x20) {

3.配置。./configure --host=arm-linux CC=arm_v5t_le-gcc LD=arm_v5t_le-ld;

4.编译。make CFLAGS+="-static",生成strace静态可执行文件,3M多;

5.strip。arm_v5t_le-stip strace,这样可执行文件就减小到756多K。

以上采用的是达芬奇平台的arm工具;

 


--------------------------------------------------------------------------------


strace的使用介绍可以参考以下两篇文章:
1.http://www.ibm.com/developerworks/cn/aix/library/au-unix-strace.html。
$ strace -e trace=network -p 4009