On 06/08/2019 10:26, Ravindra Kumar Meena wrote:
    Thread name is in the right order now.

    Yes, the order is all right, but you still overwrite thread names which
    consist of multiple events.

I am not able to figure out how overwritten is happening. In my code overwritten case is handled by:

if( cctx->thread_names[ api_id ][ thread_id ][ i ] == 0x00 )

This check is wrong, you should not rely on previous content of this buffer. If you see the first RTEMS_RECORD_THREAD_NAME event, then you should overwrite the complete 16 chars with 0 and fill it up with the new content. In the first RTEMS_RECORD_THREAD_NAME event, you fill up chars 0..7, in the second 8..15. For this you have to store somehow thread_id_name on which position you are, e.g.

typedef struct thread_id_name{
  uint64_t thread_id;
  size_t name_index;
} thread_id_name;

Set name_index to 0 if you see a RTEMS_RECORD_THREAD_ID event. Increment it by one after you processed a RTEMS_RECORD_THREAD_NAME event.


The above line means that write value only if a NULL char position is available. When we receive first RTEMS_RECORD_THREAD_NAME the loop will start filling the NULL char position from the beginning and when second RTEMS_RECORD_THREAD_NAME is received then NULL char are filled just after the previously filled char position.

e.g.
Object Index: 30
Name: 36697773
Name: 71206b73

On a 64-bit target, the data field contains 8 chars. Why do you only print 4 chars here?


After the first iteration of for loop, the 16 size char array will be:
{s,w,i,6,0,0,0,0,0,0,0,0,0,0,0,0}

After the second iteration of for loop, the 16 size char array will be:
{s,w,i,6,s,k, ,q,0,0,0,0,0,0,0,0}

For this decode, the value will be "swi6sk q". Right? This is exactly what I am getting in Konsole.

For this task you should end up with "swi6: task queu".

--
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.
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to