On 11/29/2013 09:41 AM, Bukuli Norbert wrote:
(gdb) cont
Continuing.
warning: Could not load shared library symbols for linux-vdso32.so.1.
Do you need "set solib-search-path" or "set sysroot"?
warning: .dynamic section for 
"/opt/eldk-5.4/powerpc/sysroots/powerpc-linux/usr/xenomai/lib/libpthread_rt.so.1"
 is not at the expected address (wrong library or version mismatch?)
warning: .dynamic section for 
"/opt/eldk-5.4/powerpc/sysroots/powerpc-linux/usr/xenomai/lib/libxenomai.so.0" 
is not at the expected address (wrong library or version mismatch?)

These warnings may trigger with recent broken gdbserver releases, let's ignore them.
https://sourceware.org/ml/gdb-patches/2013-06/msg00054.html

[New Thread 280]

Program received signal SIGILL, Illegal instruction.
[Switching to Thread 280]
0x0fdf4e74 in ?? () from 
/opt/eldk-5.4/powerpc/sysroots/powerpc-linux/lib/libc.so.6


(gdb) disass $pc-64 $pc+20

would help at this point.

(gdb) bt
#0  0x0fdf4e74 in ?? () from 
/opt/eldk-5.4/powerpc/sysroots/powerpc-linux/lib/libc.so.6
#1  0x0ffd8af8 in sched_setconfig_np ()
    from 
/opt/eldk-5.4/powerpc/sysroots/powerpc-linux/usr/xenomai/lib/libpthread_rt.so.1
#2  0x0ff7ba68 in start_thread (arg=0xbffffdd0) at pthread_create.c:313

Is sched_setconfig_np() really the start routine given to pthread_create() in your application, I guess not. Or could this weird backtrace reveal a stack overflow?

gdb will give you the faulty location in symbolic form.
If you can suggest, please, how I can override loaded libraries in gdb, then I 
will repeat the tests.

You could set solib-search-path appropriately or load them manually using file (-readnow), but I don't think this would help in understanding this particular issue. It somewhat behaves as if broken Xenomai syscall code was output by the compiler - this is something we faced a couple of times already on arm and ppc in the past years. Checking the disassembled code surrounding the fault location may help figuring this out.


I have read in a previous messages on this list, that the
CONFIG_XENO_HW_UNLOCKED_SWITCH option should be turned off, but
unfortunately this did not help.


Unlocked switching is no more an issue with 3.8.13 and beyond.
Then I will turn it on again.

You can also leave it off. On architectures with sane caches (e.g. not armv5 and its aliasing issues), it basically depends on whether shorter (real-time) interrupt latencies [on] are preferred over shorter task scheduling latencies [off]. The difference will likely only amount for a couple of micro-seconds max on most platforms though, however both options are available with 3.8+ pipelines.

--
Philippe.

_______________________________________________
Xenomai mailing list
Xenomai@xenomai.org
http://www.xenomai.org/mailman/listinfo/xenomai

Reply via email to