[Ltrace-devel] Problem running ltrace on Android
pmachata at redhat.com
pmachata at redhat.com
Mon May 16 15:31:09 UTC 2011
DUSHYANT ARORA <dushyantarora13 at gmail.com> writes:
> Hello All,
>
> I cross-compiled ltrace to ARM architecture. I statically linked arm
> version of libelf and libiberty to create the executable.
>
>
> gcc main.o /../../libelf.a /../../libiberty.a -libsupc++ -o ltrace
>
> In the last step of compilation I had got this warning.
>
> [sbox-android: ~/ltrace-0.5.3] > gcc --static main.o libltrace.a
> -lsupc++ -o ltrace
> /scratchbox/compilers/arm-linux-cs2009q3-67/lib/libelf/usr/lib/libelf.a
> /scratchbox/compilers/arm-linux-cs2009q3-67/lib/binutils-dev/usr/lib/libiberty.a
>
> libltrace.a(execute_program.o): In function `change_uid':
> /home/bruce/Desktop/ltrace-0.5.3/execute_program.c:35: warning: Using
> 'initgroups' in statically linked applications requires at runtime the
> shared libraries from the glibc version used for linking
> /home/bruce/Desktop/ltrace-0.5.3/execute_program.c:28: warning: Using
> 'getpwnam' in statically linked applications requires at runtime the
> shared libraries from the glibc version used for linking
>
> When I run ltrace on the Android Emulator I get the following error:
>
> # ./ltrace ls -l
> ./ltrace ls -l
> ./ltrace: Couldn't get .hash data from "/system/bin/ls"
Hi there,
I had a discussion off-list with Dushyant Arora and he kindly provided
me with a "ping" binary that exhibits the same problems as ls in the
example above. I don't see what could be causing it, to me it looks
like a perfectly ordinary binary with standard (non-GNU) hash table.
When I turn off the arch detection in my x86_64 build of ltrace, it can
open the file and load the data without problems. (Of course it then
fails to exec the binary, but the point is that hash loading works.)
There are two places where the error that we see might occur in ltrace.
Figuring out what exactly triggers it might help. I created a small
patch that dissects the conditionals and gives a unique error message
for each separate case. That would at least point us to a single
location in the source where the error occurs.
In any case, this would need someone with the ARM experience, I don't
think I'll get to setting up the emulator anytime soon.
By the way, I don't think ltrace really needs to use the hash data. We
could just iterate all the symbols in a brute-force manner.
Thanks,
PM
P.S. there's some dubious business with sh_info of .rel.plt and .rel.dyn
pointing to .dynamic, but the the relocated data are all in .got, so I
don't see how this could cause problems. I'm attaching full readelf
output for further peruse.
===File ~/ltrace-hash-diagnostics.patch=====================
diff --git a/ltrace-elf.c b/ltrace-elf.c
index 68cc67c..3697de1 100644
--- a/ltrace-elf.c
+++ b/ltrace-elf.c
@@ -315,17 +314,22 @@ do_init_elf(struct ltelf *lte, const char *filename) {
lte->hash_type = SHT_HASH;
data = elf_getdata(scn, NULL);
- if (data == NULL || elf_getdata(scn, data) != NULL
- || data->d_off || data->d_size != shdr.sh_size)
+ if (data == NULL)
error(EXIT_FAILURE, 0,
"Couldn't get .hash data from \"%s\"",
filename);
+ if (elf_getdata(scn, data) != NULL
+ || data->d_off || data->d_size != shdr.sh_size)
+ error(EXIT_FAILURE, 0,
+ "Multiple data chunks in .hash from \"%s\"",
+ filename);
+
if (shdr.sh_entsize == 4) {
/* Standard conforming ELF. */
if (data->d_type != ELF_T_WORD)
error(EXIT_FAILURE, 0,
- "Couldn't get .hash data from \"%s\"",
+ "Wrong type of .hash data from \"%s\"",
filename);
lte->hash = (Elf32_Word *) data->d_buf;
} else if (shdr.sh_entsize == 8) {
============================================================
===File ~/tmp/arm-ping-readelf.txt==========================
ELF Header:
Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00
Class: ELF32
Data: 2's complement, little endian
Ident Version: 1 (current)
OS/ABI: UNIX - System V
ABI Version: 0
Type: EXEC (Executable file)
Machine: ARM
Version: 1 (current)
Entry point address: 0x9120
Start of program headers: 52 (bytes into file)
Start of section headers: 25788 (bytes into file)
Flags: 0x5000000
Size of this header: 52 (bytes)
Size of program header entries: 32 (bytes)
Number of program headers entries: 7
Size of section header entries: 40 (bytes)
Number of section headers entries: 23
Section header string table index: 22
Section Headers:
[Nr] Name Type Addr Off Size ES Flags Lk Inf Al
[ 0] NULL 00000000 000000 000000 0 0 0 0
[ 1] .interp PROGBITS 00008114 000114 000013 0 A 0 0 1
[ 2] .hash HASH 00008128 000128 000268 4 A 3 0 4
[ 3] .dynsym DYNSYM 00008390 000390 000550 16 A 4 0 4
[ 4] .dynstr STRTAB 000088e0 0008e0 000348 0 A 0 0 1
[ 5] .rel.plt REL 00008c28 000c28 0001e0 8 A 3 2 4
[ 6] .rel.dyn REL 00008e08 000e08 000028 8 A 3 2 4
[ 7] .plt PROGBITS 00008e30 000e30 0002e4 0 AX 0 0 4
[ 8] .text PROGBITS 00009120 001120 0030ec 0 AX 0 0 16
[ 9] .rodata PROGBITS 0000c20c 00420c 001196 1 A 0 0 4
[10] .ARM.extab PROGBITS 0000d3a4 0053a4 00000c 0 A 0 0 4
[11] .ARM.exidx ARM_EXIDX 0000d3b0 0053b0 0000d0 8 A 8 0 4
[12] .preinit_array PREINIT_ARRAY 0000e000 006000 000008 0 WA 0 0 1
[13] .init_array INIT_ARRAY 0000e008 006008 000008 0 WA 0 0 1
[14] .fini_array FINI_ARRAY 0000e010 006010 000008 0 WA 0 0 1
[15] .ctors PROGBITS 0000e018 006018 000008 0 WA 0 0 1
[16] .dynamic DYNAMIC 0000e020 006020 0000c0 8 WA 4 0 4
[17] .got PROGBITS 0000e0e0 0060e0 0001c4 0 WA 0 0 4
[18] .data PROGBITS 0000e2a4 0062a4 00010c 0 WA 0 0 4
[19] .bss NOBITS 0000e3b0 0063b0 013134 0 WA 0 0 16
[20] .note.gnu.gold-version NOTE 00000000 0063b0 000018 0 0 0 4
[21] .ARM.attributes ARM_ATTRIBUTES 00000000 0063c8 000027 0 0 0 1
[22] .shstrtab STRTAB 00000000 0063ef 0000cd 0 0 0 1
Program Headers:
Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
PHDR 0x000034 0x00008034 0x00008034 0x0000e0 0x0000e0 R 0x4
INTERP 0x000114 0x00008114 0x00008114 0x000013 0x000013 R 0x1
[Requesting program interpreter: /system/bin/linker]
LOAD 0x000000 0x00008000 0x00008000 0x005480 0x005480 R E 0x1000
LOAD 0x006000 0x0000e000 0x0000e000 0x0003b0 0x0134e4 RW 0x1000
DYNAMIC 0x006020 0x0000e020 0x0000e020 0x0000c0 0x0000c0 RW 0x4
GNU_STACK 0x000000 0x00000000 0x00000000 0x000000 0x000000 RW 0x0
ARM_EXIDX 0x0053b0 0x0000d3b0 0x0000d3b0 0x0000d0 0x0000d0 R 0x4
Section to Segment mapping:
Segment Sections...
00
01 [RO: .interp]
02 [RO: .interp .hash .dynsym .dynstr .rel.plt .rel.dyn .plt .text .rodata .ARM.extab .ARM.exidx]
03 .preinit_array .init_array .fini_array .ctors .dynamic .got .data .bss
04 .dynamic
05
06 [RO: .ARM.exidx]
Dynamic segment contains 24 entries:
Addr: 0x0000e020 Offset: 0x006020 Link to section: [ 4] '.dynstr'
Type Value
PLTGOT 0x0000e1a8
PLTRELSZ 480 (bytes)
JMPREL 0x00008c28
PLTREL REL
REL 0x00008e08
RELSZ 40 (bytes)
RELENT 8 (bytes)
DEBUG
SYMTAB 0x00008390
SYMENT 16 (bytes)
STRTAB 0x000088e0
STRSZ 840 (bytes)
HASH 0x00008128
NEEDED Shared library: [libc.so]
NEEDED Shared library: [libstdc++.so]
NEEDED Shared library: [libm.so]
PREINIT_ARRAY 0x0000e000
PREINIT_ARRAYSZ 0x00000008
INIT_ARRAY 0x0000e008
INIT_ARRAYSZ 8 (bytes)
FINI_ARRAY 0x0000e010
FINI_ARRAYSZ 8 (bytes)
FLAGS
NULL
Relocation section [ 5] '.rel.plt' for section [ 2] '.hash' at offset 0xc28 contains 60 entries:
Offset Type Value Name
0x0000e1b4 ARM_JUMP_SLOT 0000000000 __libc_init
0x0000e1b8 ARM_JUMP_SLOT 0000000000 __aeabi_idiv
0x0000e1bc ARM_JUMP_SLOT 0000000000 setsockopt
0x0000e1c0 ARM_JUMP_SLOT 0000000000 perror
0x0000e1c4 ARM_JUMP_SLOT 0000000000 fputs
0x0000e1c8 ARM_JUMP_SLOT 0000000000 exit
0x0000e1cc ARM_JUMP_SLOT 0000000000 strtol
0x0000e1d0 ARM_JUMP_SLOT 0000000000 fprintf
0x0000e1d4 ARM_JUMP_SLOT 0000000000 gethostbyaddr
0x0000e1d8 ARM_JUMP_SLOT 0000000000 inet_ntoa
0x0000e1dc ARM_JUMP_SLOT 0000000000 strcpy
0x0000e1e0 ARM_JUMP_SLOT 0000000000 snprintf
0x0000e1e4 ARM_JUMP_SLOT 0000000000 sscanf
0x0000e1e8 ARM_JUMP_SLOT 0000000000 printf
0x0000e1ec ARM_JUMP_SLOT 0000000000 putchar
0x0000e1f0 ARM_JUMP_SLOT 0000000000 memcpy
0x0000e1f4 ARM_JUMP_SLOT 0000000000 gettimeofday
0x0000e1f8 ARM_JUMP_SLOT 0000000000 __aeabi_lmul
0x0000e1fc ARM_JUMP_SLOT 0000000000 __aeabi_idivmod
0x0000e200 ARM_JUMP_SLOT 0000000000 write
0x0000e204 ARM_JUMP_SLOT 0000000000 puts
0x0000e208 ARM_JUMP_SLOT 0000000000 memset
0x0000e20c ARM_JUMP_SLOT 0000000000 sendmsg
0x0000e210 ARM_JUMP_SLOT 0000000000 __aeabi_ldivmod
0x0000e214 ARM_JUMP_SLOT 0000000000 fputc
0x0000e218 ARM_JUMP_SLOT 0000000000 __aeabi_uidiv
0x0000e21c ARM_JUMP_SLOT 0000000000 __aeabi_uidivmod
0x0000e220 ARM_JUMP_SLOT 0000000000 setitimer
0x0000e224 ARM_JUMP_SLOT 0000000000 sigaction
0x0000e228 ARM_JUMP_SLOT 0000000000 getpid
0x0000e22c ARM_JUMP_SLOT 0000000000 getsockopt
0x0000e230 ARM_JUMP_SLOT 0000000000 atoi
0x0000e234 ARM_JUMP_SLOT 0000000000 strchr
0x0000e238 ARM_JUMP_SLOT 0000000000 __aeabi_fmul
0x0000e23c ARM_JUMP_SLOT 0000000000 __aeabi_f2iz
0x0000e240 ARM_JUMP_SLOT 0000000000 abort
0x0000e244 ARM_JUMP_SLOT 0000000000 __swbuf
0x0000e248 ARM_JUMP_SLOT 0000000000 fflush
0x0000e24c ARM_JUMP_SLOT 0000000000 memcmp
0x0000e250 ARM_JUMP_SLOT 0000000000 __errno
0x0000e254 ARM_JUMP_SLOT 0000000000 recvmsg
0x0000e258 ARM_JUMP_SLOT 0000000000 strerror
0x0000e25c ARM_JUMP_SLOT 0000000000 __stack_chk_fail
0x0000e260 ARM_JUMP_SLOT 0000000000 sched_yield
0x0000e264 ARM_JUMP_SLOT 0000000000 poll
0x0000e268 ARM_JUMP_SLOT 0000000000 ioctl
0x0000e26c ARM_JUMP_SLOT 0000000000 socket
0x0000e270 ARM_JUMP_SLOT 0000000000 getuid
0x0000e274 ARM_JUMP_SLOT 0000000000 setuid
0x0000e278 ARM_JUMP_SLOT 0000000000 strcmp
0x0000e27c ARM_JUMP_SLOT 0000000000 getopt
0x0000e280 ARM_JUMP_SLOT 0000000000 inet_aton
0x0000e284 ARM_JUMP_SLOT 0000000000 gethostbyname
0x0000e288 ARM_JUMP_SLOT 0000000000 strncpy
0x0000e28c ARM_JUMP_SLOT 0000000000 strlen
0x0000e290 ARM_JUMP_SLOT 0000000000 connect
0x0000e294 ARM_JUMP_SLOT 0000000000 getsockname
0x0000e298 ARM_JUMP_SLOT 0000000000 close
0x0000e29c ARM_JUMP_SLOT 0000000000 bind
0x0000e2a0 ARM_JUMP_SLOT 0000000000 malloc
Relocation section [ 6] '.rel.dyn' for section [ 2] '.hash' at offset 0xe08 contains 5 entries:
Offset Type Value Name
0x0000e184 ARM_GLOB_DAT 0000000000 __stack_chk_guard
0x0000e100 ARM_GLOB_DAT 0000000000 __sF
0x0000e1a0 ARM_GLOB_DAT 0000000000 optind
0x0000e16c ARM_GLOB_DAT 0000000000 optarg
0x0000e108 ARM_GLOB_DAT 0000000000 _ctype_
Histogram for bucket list length in section [ 2] '.hash' (total of 67 buckets):
Addr: 0x00008128 Offset: 0x000128 Link to section: [ 3] '.dynsym'
Length Number % of total Coverage
0 16 23,9%
1 31 46,3% 36,9%
2 11 16,4% 63,1%
3 6 9,0% 84,5%
4 2 3,0% 94,0%
5 1 1,5% 100,0%
Average number of tests: successful lookup: 1,607143
unsuccessful lookup: 1,253731
Symbol table [ 3] '.dynsym' contains 85 entries:
0 local symbols String table: [ 4] '.dynstr'
Num: Value Size Type Bind Vis Ndx Name
0: 00000000 0 NOTYPE LOCAL DEFAULT UNDEF
1: 00000000 0 FUNC GLOBAL DEFAULT UNDEF __aeabi_unwind_cpp_pr0
2: 00000000 0 FUNC GLOBAL DEFAULT UNDEF strlen
3: 00000000 0 FUNC GLOBAL DEFAULT UNDEF __errno
4: 00000000 0 FUNC GLOBAL DEFAULT UNDEF snprintf
5: 00000000 0 FUNC GLOBAL DEFAULT UNDEF write
6: 00000000 0 FUNC GLOBAL DEFAULT UNDEF close
7: 00000000 0 FUNC GLOBAL DEFAULT UNDEF __stack_chk_fail
8: 00000000 0 OBJECT GLOBAL DEFAULT UNDEF __stack_chk_guard
9: 00000000 0 FUNC GLOBAL DEFAULT UNDEF memset
10: 00000000 0 FUNC GLOBAL DEFAULT UNDEF memcmp
11: 00000000 0 FUNC GLOBAL DEFAULT UNDEF sscanf
12: 00000000 0 FUNC GLOBAL DEFAULT UNDEF abort
13: 00000000 0 FUNC GLOBAL DEFAULT UNDEF fprintf
14: 00000000 0 OBJECT GLOBAL DEFAULT UNDEF __sF
15: 00000000 0 FUNC GLOBAL DEFAULT UNDEF __aeabi_uidiv
16: 00000000 0 FUNC GLOBAL DEFAULT UNDEF memcpy
17: 00000000 0 FUNC GLOBAL DEFAULT UNDEF __aeabi_uidivmod
18: 00000000 0 FUNC GLOBAL DEFAULT UNDEF malloc
19: 00000000 0 FUNC GLOBAL DEFAULT UNDEF atoi
20: 000091ed 4 FUNC GLOBAL DEFAULT 8 dlopen
21: 000091f1 4 FUNC GLOBAL DEFAULT 8 dlsym
22: 000091f5 4 FUNC GLOBAL DEFAULT 8 dlclose
23: 00000000 0 FUNC GLOBAL DEFAULT UNDEF getpid
24: 00000000 0 FUNC GLOBAL DEFAULT UNDEF __libc_init
25: 00000000 0 FUNC GLOBAL DEFAULT UNDEF exit
26: 00020450 0 NOTYPE GLOBAL DEFAULT 19 __dso_handle
27: 0000e008 0 NOTYPE GLOBAL DEFAULT 13 __INIT_ARRAY__
28: 0000e010 0 NOTYPE GLOBAL DEFAULT 14 __FINI_ARRAY__
29: 00000000 0 FUNC GLOBAL DEFAULT UNDEF getuid
30: 00000000 0 FUNC GLOBAL DEFAULT UNDEF gettimeofday
31: 00000000 0 FUNC GLOBAL DEFAULT UNDEF setitimer
32: 00000000 0 FUNC GLOBAL DEFAULT UNDEF sigaction
33: 00000000 0 FUNC GLOBAL DEFAULT UNDEF socket
34: 00000000 0 FUNC GLOBAL DEFAULT UNDEF bind
35: 00000000 0 FUNC GLOBAL DEFAULT UNDEF connect
36: 00000000 0 FUNC GLOBAL DEFAULT UNDEF getsockname
37: 00000000 0 FUNC GLOBAL DEFAULT UNDEF setsockopt
38: 00000000 0 FUNC GLOBAL DEFAULT UNDEF getsockopt
39: 00000000 0 FUNC GLOBAL DEFAULT UNDEF sendmsg
40: 00000000 0 FUNC GLOBAL DEFAULT UNDEF recvmsg
41: 00000000 0 FUNC GLOBAL DEFAULT UNDEF sched_yield
42: 00000000 0 FUNC GLOBAL DEFAULT UNDEF poll
43: 00000000 0 FUNC GLOBAL DEFAULT UNDEF __aeabi_unwind_cpp_pr1
44: 00000000 0 FUNC GLOBAL DEFAULT UNDEF strchr
45: 00000000 0 FUNC GLOBAL DEFAULT UNDEF __aeabi_idiv
46: 00000000 0 FUNC GLOBAL DEFAULT UNDEF __aeabi_idivmod
47: 00000000 0 OBJECT GLOBAL DEFAULT UNDEF optind
48: 00000000 0 OBJECT GLOBAL DEFAULT UNDEF optarg
49: 00000000 0 FUNC GLOBAL DEFAULT UNDEF getopt
50: 00000000 0 FUNC GLOBAL DEFAULT UNDEF ioctl
51: 00000000 0 FUNC GLOBAL DEFAULT UNDEF strcmp
52: 00000000 0 FUNC GLOBAL DEFAULT UNDEF perror
53: 00000000 0 FUNC GLOBAL DEFAULT UNDEF setuid
54: 00000000 0 FUNC GLOBAL DEFAULT UNDEF strerror
55: 00000000 0 FUNC GLOBAL DEFAULT UNDEF fflush
56: 00000000 0 FUNC GLOBAL DEFAULT UNDEF fputc
57: 00000000 0 FUNC GLOBAL DEFAULT UNDEF __swbuf
58: 00000000 0 FUNC GLOBAL DEFAULT UNDEF fputs
59: 00000000 0 FUNC GLOBAL DEFAULT UNDEF printf
60: 00000000 0 FUNC GLOBAL DEFAULT UNDEF putchar
61: 00000000 0 FUNC GLOBAL DEFAULT UNDEF puts
62: 00000000 0 OBJECT GLOBAL DEFAULT UNDEF _ctype_
63: 00000000 0 FUNC GLOBAL DEFAULT UNDEF __aeabi_ldivmod
64: 00000000 0 FUNC GLOBAL DEFAULT UNDEF __aeabi_lmul
65: 00000000 0 FUNC GLOBAL DEFAULT UNDEF strcpy
66: 00000000 0 FUNC GLOBAL DEFAULT UNDEF strtol
67: 00000000 0 FUNC GLOBAL DEFAULT UNDEF strncpy
68: 00000000 0 FUNC GLOBAL DEFAULT UNDEF inet_aton
69: 00000000 0 FUNC GLOBAL DEFAULT UNDEF inet_ntoa
70: 00000000 0 FUNC GLOBAL DEFAULT UNDEF gethostbyaddr
71: 00000000 0 FUNC GLOBAL DEFAULT UNDEF gethostbyname
72: 00000000 0 FUNC GLOBAL DEFAULT UNDEF __aeabi_f2iz
73: 00000000 0 FUNC GLOBAL DEFAULT UNDEF __aeabi_fmul
74: 0000d3b0 0 NOTYPE GLOBAL DEFAULT ABS __exidx_start
75: 0000d480 0 NOTYPE GLOBAL DEFAULT ABS __exidx_end
76: 0000e2a4 0 NOTYPE GLOBAL DEFAULT 18 __data_start
77: 0000e3b0 0 NOTYPE GLOBAL DEFAULT ABS _edata
78: 0000e3b0 0 NOTYPE GLOBAL DEFAULT ABS __bss_start
79: 0000e3b0 0 NOTYPE GLOBAL DEFAULT ABS __bss_start__
80: 000214e4 0 NOTYPE GLOBAL DEFAULT ABS _bss_end__
81: 000214e4 0 NOTYPE GLOBAL DEFAULT ABS __bss_end__
82: 000214e4 0 NOTYPE GLOBAL DEFAULT ABS __end__
83: 000214e4 0 NOTYPE GLOBAL DEFAULT ABS _end
84: 00080000 0 NOTYPE GLOBAL DEFAULT ABS _stack
Object attributes section [21] '.ARM.attributes' of 39 bytes at offset 0x63c8:
Owner Size
aeabi 38
File: 28
CPU_name: 0
CPU_arch: v5TE
ARM_ISA_use: Yes
String section [4] '.dynstr' contains 840 bytes at offset 0x8e0:
[ 0]
[ 1] __aeabi_unwind_cpp_pr0
[ 18] strlen
[ 1f] __errno
[ 27] snprintf
[ 30] write
[ 36] close
[ 3c] __stack_chk_fail
[ 4d] __stack_chk_guard
[ 5f] memset
[ 66] memcmp
[ 6d] sscanf
[ 74] abort
[ 7a] fprintf
[ 82] __sF
[ 87] __aeabi_uidiv
[ 95] memcpy
[ 9c] __aeabi_uidivmod
[ ad] malloc
[ b4] atoi
[ b9] dlopen
[ c0] dlsym
[ c6] dlclose
[ ce] getpid
[ d5] __libc_init
[ e1] exit
[ e6] __dso_handle
[ f3] __INIT_ARRAY__
[ 102] __FINI_ARRAY__
[ 111] getuid
[ 118] gettimeofday
[ 125] setitimer
[ 12f] sigaction
[ 139] socket
[ 140] bind
[ 145] connect
[ 14d] getsockname
[ 159] setsockopt
[ 164] getsockopt
[ 16f] sendmsg
[ 177] recvmsg
[ 17f] sched_yield
[ 18b] poll
[ 190] __aeabi_unwind_cpp_pr1
[ 1a7] strchr
[ 1ae] __aeabi_idiv
[ 1bb] __aeabi_idivmod
[ 1cb] optind
[ 1d2] optarg
[ 1d9] getopt
[ 1e0] ioctl
[ 1e6] strcmp
[ 1ed] perror
[ 1f4] setuid
[ 1fb] strerror
[ 204] fflush
[ 20b] fputc
[ 211] __swbuf
[ 219] fputs
[ 21f] printf
[ 226] putchar
[ 22e] puts
[ 233] _ctype_
[ 23b] __aeabi_ldivmod
[ 24b] __aeabi_lmul
[ 258] strcpy
[ 25f] strtol
[ 266] strncpy
[ 26e] inet_aton
[ 278] inet_ntoa
[ 282] gethostbyaddr
[ 290] gethostbyname
[ 29e] __aeabi_f2iz
[ 2ab] __aeabi_fmul
[ 2b8] __exidx_start
[ 2c6] __exidx_end
[ 2d2] __data_start
[ 2df] _edata
[ 2e6] __bss_start
[ 2f2] __bss_start__
[ 300] _bss_end__
[ 30b] __bss_end__
[ 317] __end__
[ 31f] _end
[ 324] _stack
[ 32b] libc.so
[ 333] libstdc++.so
[ 340] libm.so
Note section [20] '.note.gnu.gold-version' of 24 bytes at offset 0x63b0:
Owner Data size Type
GNU 8 GNU_GOLD_VERSION
Linker version: gold 1.9
============================================================
More information about the Ltrace-devel
mailing list