Hi Denys,

I resolved the problem using the newer release 1.17.13.

Thanks!

Rogério Pimentel


On 10/17/2010 10:17 AM, Denys Vlasenko wrote:
On Thursday 07 October 2010 14:59, Rogerio Pimentel wrote:
Hi,

I'm having a "segmentation fault" problem when using ping6.

When testing on ARM9 platforms (i.MX25 and i.MX27), it returns the error:

r...@freescale ~$ ping6 ::1
PING ::1 (::1): 56 data bytes
Segmentation fault


Strace log:
------------------------------------------
$ strace ping6 ::1
execve("/bin/ping6", ["ping6", "::1"], [/* 12 vars */]) = 0
brk(0)                                  = 0x9b000
uname({sys="Linux", node="freescale", ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0x4001c000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or
directory)
open("/etc/ld.so.cache", O_RDONLY)      = -1 ENOENT (No such file or
directory)
open("/lib/tls/v5l/fast-mult/half/libc.so.6", O_RDONLY) = -1 ENOENT (No
such file or directory)
stat64("/lib/tls/v5l/fast-mult/half", 0xbeafb2d8) = -1 ENOENT (No such
file or directory)
open("/lib/tls/v5l/fast-mult/libc.so.6", O_RDONLY) = -1 ENOENT (No such
file or directory)
stat64("/lib/tls/v5l/fast-mult", 0xbeafb2d8) = -1 ENOENT (No such file
or directory)
open("/lib/tls/v5l/half/libc.so.6", O_RDONLY) = -1 ENOENT (No such file
or directory)
stat64("/lib/tls/v5l/half", 0xbeafb2d8) = -1 ENOENT (No such file or
directory)
open("/lib/tls/v5l/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or
directory)
stat64("/lib/tls/v5l", 0xbeafb2d8)      = -1 ENOENT (No such file or
directory)
open("/lib/tls/fast-mult/half/libc.so.6", O_RDONLY) = -1 ENOENT (No such
file or directory)
stat64("/lib/tls/fast-mult/half", 0xbeafb2d8) = -1 ENOENT (No such file
or directory)
open("/lib/tls/fast-mult/libc.so.6", O_RDONLY) = -1 ENOENT (No such file
or directory)
stat64("/lib/tls/fast-mult", 0xbeafb2d8) = -1 ENOENT (No such file or
directory)
open("/lib/tls/half/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or
directory)
stat64("/lib/tls/half", 0xbeafb2d8)     = -1 ENOENT (No such file or
directory)
open("/lib/tls/libc.so.6", O_RDONLY)    = -1 ENOENT (No such file or
directory)
stat64("/lib/tls", 0xbeafb2d8)          = -1 ENOENT (No such file or
directory)
open("/lib/v5l/fast-mult/half/libc.so.6", O_RDONLY) = -1 ENOENT (No such
file or directory)
stat64("/lib/v5l/fast-mult/half", 0xbeafb2d8) = -1 ENOENT (No such file
or directory)
open("/lib/v5l/fast-mult/libc.so.6", O_RDONLY) = -1 ENOENT (No such file
or directory)
stat64("/lib/v5l/fast-mult", 0xbeafb2d8) = -1 ENOENT (No such file or
directory)
open("/lib/v5l/half/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or
directory)
stat64("/lib/v5l/half", 0xbeafb2d8)     = -1 ENOENT (No such file or
directory)
open("/lib/v5l/libc.so.6", O_RDONLY)    = -1 ENOENT (No such file or
directory)
stat64("/lib/v5l", 0xbeafb2d8)          = -1 ENOENT (No such file or
directory)
open("/lib/fast-mult/half/libc.so.6", O_RDONLY) = -1 ENOENT (No such
file or directory)
stat64("/lib/fast-mult/half", 0xbeafb2d8) = -1 ENOENT (No such file or
directory)
open("/lib/fast-mult/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or
directory)
stat64("/lib/fast-mult", 0xbeafb2d8)    = -1 ENOENT (No such file or
directory)
open("/lib/half/libc.so.6", O_RDONLY)   = -1 ENOENT (No such file or
directory)
stat64("/lib/half", 0xbeafb2d8)         = -1 ENOENT (No such file or
directory)
open("/lib/libc.so.6", O_RDONLY)        = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\10C\1\000"...,
512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1346605, ...}) = 0
mmap2(NULL, 1134988, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3,
0) = 0x40025000
mprotect(0x4012e000, 28672, PROT_NONE)  = 0
mmap2(0x40135000, 12288, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x108) = 0x40135000
mmap2(0x40138000, 8588, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40138000
close(3)                                = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0x4001d000
syscall_983045(0x4001d080, 0x4001d080, 0x40024058, 0x4001d758, 0x40,
0x40024058, 0, 0xf0005, 0x6fffff40, 0x8034, 0x40024000, 0xbeafbb5c, 0,
0xbeafb880, 0x400
mprotect(0x40135000, 8192, PROT_READ)   = 0
mprotect(0x40023000, 4096, PROT_READ)   = 0
getuid32()                              = 0
getpid()                                = 403
mq_notify(16, ptrace: umoven: Input/output error
{...})                    = 3
mq_getsetattr(3, {mq_flags=O_RDONLY|0x10, mq_maxmsg=0, mq_msgsize=0,
mq_curmsg=12}, ptrace: umoven: Input/output error
{...}) = 0
SYS_286(0x3, 0xbeafb958, 0xbeafb964, 0x10, 0x3) = 0
gettimeofday({406, 103378}, NULL)       = 0
SYS_290(0x3, 0xbeafb914, 0x14, 0, 0xbeafb908) = 20
SYS_297(0x3, 0xbeafa8e4, 0, 0, 0xbeafa94c) = 108
SYS_297(0x3, 0xbeafa8e4, 0, 0, 0xbeafa94c) = 128
SYS_297(0x3, 0xbeafa8e4, 0, 0, 0xbeafa94c) = 20
close(3)                                = 0
brk(0)                                  = 0x9b000
brk(0xbc000)                            = 0xbc000
fstat64(1, {st_mode=S_IFCHR|0600, st_rdev=makedev(207, 16), ...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B115200 opost isig icanon echo
...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0x4001e000
write(1, "PING ::1 (::1): 56 data bytes\n", 30PING ::1 (::1): 56 data bytes
) = 30
mq_notify(10, ptrace: umoven: Input/output error
{...})                    = 3
getuid32()                              = 0
setuid32(0)                             = 0
SYS_294(0x3, 0x3a, 0x1, 0xbeafba3c, 0x20) = 0
SYS_294(0x3, 0x1, 0x6, 0x7f2b0, 0x4)    = 0
SYS_294(0x3, 0x1, 0x8, 0xbeafba9c, 0x4) = 0
SYS_294(0x3, 0xff, 0x7, 0xbeafba9c, 0x4) = 0
SYS_294(0x3, 0x29, 0x8, 0x7f2b0, 0x4)   = 0
rt_sigaction(SIGINT, {0x20698, [INT], SA_RESTART|0x4000000}, {SIG_DFL},
8) = 0
timer_delete(0x1)                       = 0
SYS_290(0x3, 0xbeafb898, 0x40, 0, 0x98cec) = 64
rt_sigaction(SIGALRM, {0x1fd24, [ALRM], SA_RESTART|0x4000000},
{SIG_DFL}, 8) = 0
setitimer(ITIMER_REAL, {it_interval={0, 0}, it_value={1, 0}},
{it_interval={0, 0}, it_value={0, 0}}) = 0
SYS_297(0x3, 0xbeafba78, 0, 0x30, 0xbeafba9c) = 64
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++
Process 403 detached
Looks like strace totally misinterpreted calling convention.

Anyway, strace is often useless for diagnosing SEGVs.

Try to use gdb to find out where _exactly_ program fails.

If you don't like gdb or don't have it on the target,
add lots of debugging printouts to ping6, recompile,
rerun, repeat until you find the line where it fails.

--
vda


_______________________________________________
busybox mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/busybox

Reply via email to