1. 程式人生 > >ARM linux strace 安裝

ARM linux strace 安裝

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。

 


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