On 10/10/2018 14:27, Catalin Demergian wrote:
I was debugging to follow what's going on with the state of the task in _Event_Seize and when trying to step over _Thread_Dispatch_enable( cpu_self ) call at the end of the function I got this in the debugger


0x80acf38->_Heap_Walk->_Heap_Walk_check_control->_Heap_Walk_check_free_list->_Thread_Handler->_CPU_Thread_Idle_body

heapwalk.c:331->heapwalk.c:240->heapwalk.c:105->threadhandler.c:95->armv7-thread-idle.c:33

    if ( free_block->prev != prev_block ) {

(*printer)(

source,

true,

"free block 0x%08x: invalid previous block 0x%08x\n",

free_block,

free_block->prev

 );

return false;

}


what does that mean? is this a memory corruption of some kind ?

it seems the message "free block 0x%08x: invalid previous block 0x%08x\n" is printed somewhere, but I don't know

how to see these messages in RTEMS, is there a command like dmesg in Linux ?


This looks more like a debugger issue which seems to have problems to decipher the stack frame.

The _Thread_Dispatch_enable( cpu_self ) may lead to a context switch which must be done via a supervisor call exception. If your debugger disables this somehow you execute arbitrary code.

--
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  : sebastian.hu...@embedded-brains.de
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.

_______________________________________________
users mailing list
users@rtems.org
http://lists.rtems.org/mailman/listinfo/users

Reply via email to