移植strace调试工具到arm平台

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

 

 

 移植strace调试工具到arm平台 由Linux系统中文网(Linux521.com)编辑收集整理,除Linux521注明原创文章外,其版权归原作者所有。如果您在学习中遇到问题欢迎在下面的评论中留言,我们会尽全力解答您的问题。

 

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 

时间: 2024-10-26 22:05:50

移植strace调试工具到arm平台的相关文章

mp3解码-移植libmad库到arm的linux平台出现不支持thumb指令

问题描述 移植libmad库到arm的linux平台出现不支持thumb指令 移植libmad,交叉工具链是arm-linux-gnueabihf-gcc.Linux内核是3.12比较新配置是./configure --host=arm-linux-gnueabihf --prefix=/usr/local/libmad_arm --enable-shared --enable-static --enable-fpm=arm --with-gnu-ld=arm-linux-gnueabihf-l

在fedora 10下移植QT到arm平台失败也就是运行不起来

问题描述 在fedora 10下移植QT到arm平台失败也就是运行不起来 安装了 qt-x11-opensource-src-4.5.3.tar.gz qt-embedded-linux-opensource-src-4.5.2.tar.gz 这两个. 安装方法是按照教程来装. 为了方便,我直接把qt-embedded-linux-opensource-src-4.5.2 arm 版本的装到了开发板. QTCreator 也已经设置qt-embedded- 这个安装好里的qmake build

开发者逆向工程将《星际争霸》移植到ARM平台

没有源代码就无法移植的规则并不完全正确.OpenPandora项目开发者宣布利用逆向工程技术将经典即时战略游戏<星际争霸>移植到了ARM平台.开发者利用ia32rtools工具将星际争霸的代码从x86反汇编到C,然后将C代码作为正常程序编译能在ARM平台上运行. 听起来很简单,作者从去年秋天开始逆向工程,预计一个月能完成,结果到了新年还有需要工作需要做. 作者承认,没有源代码就无法移植实际上是真理,Windows游戏应该通过模拟器运行,静态重编译是可行的,但实践中会遇到太多的问题. [来源:O

移植-在工控机下正常执行的串口液晶测试程序,到arm平台下不能正常执行

问题描述 在工控机下正常执行的串口液晶测试程序,到arm平台下不能正常执行 串口液晶屏在工控机上测试程序可行,到开发板上不行? 串口液晶使用的是SLCM19264 工控机系统为unbuntu10.04,编译器gcc 开发板为arm的xm31平台,交叉编译器arm-none-linux-gnueabi-gcc 程序如下 #include #include #include #include #include #include #include #include #include int fd; s

ffmpeg在arm平台linux系统下,做h264的视频流截图时报错如下,大部分图片显示不全

问题描述 ffmpeg在arm平台linux系统下,做h264的视频流截图时报错如下,大部分图片显示不全 [h264 @ 0x24900] RTP: missed 1 packetsInvalid UE golomb codeInvalid UE golomb code[h264 @ 0x24900] error while decoding MB 10 44 bytestream -50[h264 @ 0x24900] concealing 119 DC 119 AC 119 MV error

arm平台函数传递参数,反汇编实例分析

测试前,需要了解下sysv的传参方式: 1.输入参数通过r0-r3传递,多余的放入堆栈中:返回值放入r0,不够的话放入{r0,r1}或者{r0,r1,r2,r3},比如: int foo(int a, int b, int c, int d), 输入:r0 = a, r1 = b, r2 = c, r3 = d,返回:r0 = 类型为int的retvalue int *foo(char a, double b, int c, char d), 输入:r0 = a, r1用于对齐(double 要

Linux Kernel之flush_cache_all在ARM平台下是如何实现的【转】

转自:http://blog.csdn.net/u011461299/article/details/10199989 版权声明:本文为博主原创文章,未经博主允许不得转载. 在驱动程序的设计中,我们可能会用到flush_cache_all将ARM cache的内容刷新到RAM,这是因为ARM Linux中cache一般会被设定为write back的.而通常象DMA是访问不了cache,所以如果我们需要启动DMA将RAM中的内容写到Flash中或LCD framebuffer,那么我们就需要调用

ARM平台上蓝牙协议栈Bluez的移植使用和配置

前言 blue简介 蓝牙(Bluetooth),或称为蓝芽,是一种新式的无线传送协议,最初由爱立信创制,后来由蓝牙特别兴趣组订定技术标准.据说因为此技术尚在萌芽的阶段,故将Bluetooth以"蓝牙"的中文译名在台湾地区进行商业的注册,不过根据英文本身的意义直译,还是"蓝牙"较为贴切. 蓝牙用于在不同的设备之间进行无线连接,例如连接计算机和外围设施,如:打印机.键盘等,又或让个人数字助理(PDA)与其它附近的PDA或计算机进行通信.目前市面上具备蓝牙技术的手机选择非

手把手教你移植linux内核(目标平台S3C2410)

Linux内核的最初版本由Linus Torvalds在1991年发布,后来内核版本不断更新: Linux1.0   1994年3月    仅支持386 Linux1.2   1995年3月    多平台支持 Linux2.0   1996年6月    支持SMP Linux2.2   1999年1月    支持更多的硬件 Linux2.4   2001年1月    支持桌面系统和USB Linux2.6   2003年12月   支持更多平台,使用新的调度器,内核可被抢占,模块子系统和文件系统