rocky1972
请教strace输出中的一句话,谢谢
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
open("/lib/tls/i686/cmov/libc.so.6", O_RDONLY) = 3
read(3, [color=Red]"/177ELF/1/1/1/0/0/0/0/0/0/0/0/0/3/0/3/0/1/0/0/0/260e/1"...,[/color] 512) = 512
[color=Blue]"/177ELF/1/1/1/0/0/0/0/0/0/0/0/0/3/0/3/0/1/0/0/0/260e/1"...,这个是从libc.so.6中读出,这些字符代表什么意思?[/color]
fstat64(3, {st_mode=S_IFREG|0755, st_size=1364388, ...}) = 0
mmap2(NULL, 1369712, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7dea000
mmap2(0xb7f33000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3,[color=Red] 0x149[/color]) = 0xb7f33000
[color=Blue]0x149 specifies the offset into the file in 4096-byte units,也就是说从libc.so.6的0x149*4096这个位置开始map12288个字节到本进程的地址空间,那如何得知libc.so.6 中该位置是那个函数?[/color]
mmap2(0xb7f36000, 9840, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS[color=Red], -1,[/color] 0) = 0xb7f36000
[color=Blue] mmap2的fd字段为-1是什么意思?[/color]
close(3)
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////