> > 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
[email protected]
https://lists.sourceforge.net/lists/listinfo/valgrind-users
_______________________________________________
Valgrind-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/valgrind-users