如何交叉编译strace工具
来源:互联网 发布:红外光谱数据库 编辑:程序博客网 时间:2024/05/22 06:24
2. 以ARM及PPC平台为例,编译strace-4.5.18;
- ARM平台(arm-linux-gcc)
- CC=arm-linux-gcc LD=arm-linux-ld RANLIB=arm-linux-ranlib ./configure --host=arm-linux --target=arm-linux
- PPC平台(ppc-linux-)
- CC=ppc_82xx-gcc LD=ppc_82xx-ld RANLIB=ppc_82xx-ranlib ./configure --host=powerpc-linux --target=powerpc-linux
- DaVinCi平台(arm_v5t_le-gcc)
- CC=arm_v5t_le-gcc LD=arm_v5t_le-ld RANLIB=arm_v5t_le-ranlib ./configure --host=arm-linux --target=arm-linux
3. 编译
make && make check
4. 如果希望安装到指定目录,则在配置时指定 --prefix=/yourdir,编译之后执行make install即可。
=================================================================================================================
strace工具是一个非常强大的工具,是调试程序的好工具。要移植到arm平台,就需要使用交叉编译工具编译生成静态链接的可执行文件。具体步骤如下:
1.下载 strace-4.5.16.tar.bz2,不要下载最新的strace-4.5.18.tar.bz2,因为后者编译会出错。下载网址是:http://sourceforge.net/project/showfiles.php?group_id=2861&package_id=2819;
2.解压。对于ARM平台,必须打上一个补丁,补丁在文章的最后面;
3.配置。./configure --host=arm-linux CC=arm_v5t_le-gcc LD=arm_v5t_le-ld;
4.编译。make CFLAGS+="-static",生成strace静态可执行文件,2M多;
5.strip。arm_v5t_le-stip strace,这样可执行文件就减小到600多K。
以上采用的是达芬奇平台的arm工具,也可以直接使用通用的arm-linux-gcc工具,版本3.4.1的我试过,可以编译通过,其他版本的不清楚。
strace的使用介绍可以参考以下两篇文章:
1.http://www.ibm.com/developerworks/cn/aix/library/au-unix-strace.html。
2.http://blog.chinaunix.net/u1/38279/showart_367248.html
--- strace-4.5.16-orig/syscall.c 2005-06-08 21:45:28.000000000 +0100
+++ strace-4.5.16/syscall.c 2005-10-25 19:26:39.000000000 +0100
@@ -1045,6 +1045,15 @@ struct tcb *tcp;
/*
* Note: we only deal with only 32-bit CPUs here.
*/
+
+ if (!(tcp->flags & TCB_INSYSCALL) &&
+ (tcp->flags & TCB_WAITEXECVE)) {
+ /* caught a fake syscall from the execve's exit */
+ tcp->flags &= ~TCB_WAITEXECVE;
+ return 0;
+ }
+
+
if (regs.ARM_cpsr & 0x20) {
/*
* Get the Thumb-mode system call number
- 如何交叉编译strace工具
- strace交叉编译
- 交叉编译strace
- 如何安装交叉编译工具
- 如何建立交叉编译工具链
- 如何建立交叉编译工具链
- 交叉编译调试跟踪器--strace
- 如何编译arm-linux-gcc交叉编译工具
- 如何利用交叉编译工具为树莓派编译linux内核
- 交叉编译工具
- 安装交叉编译工具
- 安装交叉编译工具
- 安装交叉编译工具
- 交叉编译工具链
- 交叉编译工具链
- 交叉编译工具链
- 交叉编译工具安装
- 安装交叉编译工具
- jquery 常用的选择器
- 常用SQL语句
- 收录一个合并grivView合并同一列中的相同单元格
- SYBASE 12.5 维护手册 1. 基本概念篇
- Flex学习笔记_06 常用属性
- 如何交叉编译strace工具
- 进程间同步(互斥) 以及 同一DLL的不同进程copy共享全局变量
- ExtJS中GroupingStore的使用
- Android开发学习 之 三、Log,DDMS和AVD
- vxworks输入输出
- Android电池状态监听实例1(上)
- 开发中的几个问题
- opengl_纹理过滤
- ASE12.5.4 Error: 2823接着报current process infected with 11的处理