为了调试segmentation fault,决定使用ltrace
1. 先下了个ltrace-0.4版本,configure出错,提示需要libelf
2.下载elfutils-0.131
./configure --host=mipsel-linux --target=mipsel-linux
make -c lib-elf
提示需要libintl
3. google,发现libintl在gettext里,下载gettext-0.17
直接进入gettext-runtime目录
./configure --with-included-gettext --prefix=/usr/local/crosstool/mipsel-linux --host=mipsel-linux
make ;make install
4.重新make elfutils-0.131
cd lib-elf
make;make install
5.回到ltrace-0.4里,发现不支持mipsel
下载最新的版本 ltrace-0.5_77
下载补丁
http://svn.freetz.org/branches/stable-15/make/ltrace/patches/
6.打补丁
7.进入ltrace
./autongen.sh
8.
./configure --host=mipsel-linux --target=mipsel-linux
9.
make
结果发现编译到sysdeps/linux-gnu/i386里了
直接暴力修改Makefile
ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ /
-e s/arm.*/arm/ -e s/sa110/arm/ -e s/ppc64/ppc/ -e s/s390x/s390/ -e s/mips/mipsel/)
ARCH=mipsel
10.编译出错,提示之前安装的libelf.h里的size_t没认出来,查了文件包含,未发现出错
直接替换libelf.h里的size_t为unsigned int, offset64_t为long long
最终编译出了ltrace
11.用ltrace跟踪出错的qte程序,毫无提示,郁闷