On 2013-08-31 23:07, Karel Gardas wrote:
On 08/30/13 08:58 AM, Sebastian Huber wrote:
On 2013-08-28 23:30, Karel Gardas wrote:
_Internal_error_Occurred (the_source=RTEMS_FATAL_SOURCE_EXCEPTION,
is_internal=false, the_error=536875260)
If you get an exception like this, then you can use in GDB to figure out
the context (the actual program counter of the exception is not the
direct value of register_pc):
Breakpoint 6, _Internal_error_Occurred
(the_source=RTEMS_FATAL_SOURCE_EXCEPTION, is_internal=false,
the_error=1049524) at
../../../../../../rtems/c/src/../../cpukit/score/src/interr.c:35
35 _User_extensions_Fatal( the_source, is_internal, the_error );
(gdb) p/x *(CPU_Exception_frame *)the_error
$1 = {
Thanks for this nice trick!
(gdb) p/x *(CPU_Exception_frame *)the_error
$2 = {register_r0 = 0x20006acc, register_r1 = 0x1a010004, register_r2 = 0x0,
register_r3 = 0x1a010003, register_r4 = 0x20006ab8, register_r5 = 0x20001794,
register_r6 = 0x20006d80, register_r7 = 0x20003c70, register_r8 = 0x20003e7c,
register_r9 = 0x20001440, register_r10 = 0x0, register_r11 = 0x18fc0,
register_r12 = 0x0, register_sp = 0x0, register_lr = 0xe57b, register_pc =
0xe584, register_xpsr = 0x21000000, vector = 0x3, vfp_context = 0x1}
(gdb) dis 0xe584
warning: bad breakpoint number at or near '0xe584'
(gdb) disas 0xe584
Dump of assembler code for function _Chain_Get_first_unprotected:
0x0000e56c <+0>: push {r7, lr}
0x0000e56e <+2>: sub sp, #24
0x0000e570 <+4>: add r7, sp, #0
0x0000e572 <+6>: str r0, [r7, #4]
0x0000e574 <+8>: ldr r0, [r7, #4]
0x0000e576 <+10>: bl 0xe4d8 <_Chain_Head>
0x0000e57a <+14>: str r0, [r7, #20]
0x0000e57c <+16>: ldr r3, [r7, #20]
0x0000e57e <+18>: ldr r3, [r3, #0]
Above you read head->next.
0x0000e580 <+20>: str r3, [r7, #16]
0x0000e582 <+22>: ldr r3, [r7, #16]
0x0000e584 <+24>: ldr r3, [r3, #0]
Above you read head->next->next;
I think its the instruction above which fails since r3 has a bogus value of
0x1a010003. It looks like that the chain is corrupt.
--
Sebastian Huber, embedded brains GmbH
Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone : +49 89 189 47 41-16
Fax : +49 89 189 47 41-09
E-Mail : [email protected]
PGP : Public key available on request.
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
_______________________________________________
rtems-devel mailing list
[email protected]
http://www.rtems.org/mailman/listinfo/rtems-devel