> > I have 2 different boards running QNX 6.5 and mounting the exact same file 
> > system.
> > One board is based on an NXP iMX53 SoC and the other one on a Texas 
> > Instrument AM3352.
> > Since both SoC share the same instruction set (Cortex A8 - amv7le), they 
> > can run the same binaries.
> >
> > However, whereas Valgrind 3.10.1 is working perfectly on the iMX53, it 
> > crashes on the AM3352 :

> > ==1863697== Process terminating with default action of signal 11 
> > (SIGSEGV): dumping core ==1863697==  Bad permissions for mapped region at 
> > address 0x245C
> > ==1863697==    at 0x1E4CC: mprotect (mprotect.c:33 in /proc/boot/libc.so.3)


> Run valgrind with "-d -d -d -v -v -v" and compare the two systems, paying 
> particular attention to differences that involve "aspacem".

Comparing output for iMX53 and AM3352, here is what I noticed :

1) aspacem lines are very similar (some values slightly change but not that 
much), except for those 2 lines :
AM3352:
        aspacem    5: file      0000100000-0000100fff           4096 r-x-- 
d=0x409 i=103748  o=0       m=0 fnIdx=1 fname="/bin/echo"
        aspacem    6: file      0000101000-0000101fff           4096 rw--- 
d=0x409 i=103748  o=0       m=0 fnIdx=1 fname="/bin/echo"
iMX53 :
        aspacem    5: file      0000100000-0000100fff           4096 r-x-- 
d=0x803 i=2951    o=0       m=0 fnIdx=1 fname="/bin/echo"
        aspacem    6: file      0000101000-0000101fff           4096 rw--- 
d=0x803 i=2951    o=0       m=0 fnIdx=1 fname="/bin/echo"

2) After the list of "Adding active redirection: ..." for each syscall (free, 
malloc, mallopt, bcopy, memcmp ...), it seems that we reach the crash :
AM3352:
        REDIR: 0x261a8 (libc.so.3:mallopt) redirected to 0x85b74 (mallopt)
        gdbsrv   VG core calling VG_(gdbserver_report_signal) vki_nr 11 SIGSEGV 
gdb_nr 11 SIGSEGV tid 1
iMX53 :
        REDIR: 0x5c484 (libc.so.3:memset) redirected to 0x88ce8 (memset)
        REDIR: 0x5cb34 (libc.so.3:strlen) redirected to 0x881c8 (strlen)
        REDIR: 0x5c6b4 (libc.so.3:strcmp) redirected to 0x886bc (strcmp)
        REDIR: 0x28714 (libc.so.3:malloc) redirected to 0x86928 (malloc)
        mallocfr newSuperblock at 0x102000 (pszB 4194288)  owner CLIENT/client
        ...

To be honest, I don't know how to interpret this. I don't even understand why 
REDIR in not called for "mallopt" on iMX53.

> Does your QNX have tools such as gdb and strace or dtrace?
> It will be helpful to know the address mappings at the time of the SIGSEGV.

Yes, QNX have such tools.
I tried to use vgdb and gdb, but I don't get ... anything ... (no backtrace, no 
info address, no info mem ...)
        (gdb) target remote 192.168.98.50:2346
        Remote debugging using 192.168.98.50:2346
        warning: Can not parse XML target description; XML support was disabled 
at compile time
        [New Thread 1]
        [Switching to Thread 1]
        0x0003a190 in ?? ()
        (gdb) continue
        Continuing.
        Program received signal SIGSEGV, Segmentation fault.
        0x0001e4cc in ?? ()
        (gdb) bt
        #0  0x0001e4cc in ?? ()
        (gdb) info meminfo
        (gdb) 

I also recorded kernel and scheduling events but the only information I got is 
that during 5 seconds memcheck-arm-nto works a lot, and does a lot of read(), 
write() and fseek() calls.
Finally, a signal 11 is received and a lot of close() calls are done and ... 
that's all.

I suppose it doesn't help you that much ...

--


_______________________________________________
Valgrind-users mailing list
Valgrind-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/valgrind-users


_______________________________________________
Valgrind-users mailing list
Valgrind-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/valgrind-users

Reply via email to