On 05/08/2019 10:12, Ravindra Kumar Meena wrote:
     > In the console output at someplace, I am getting this type of output:
     >
     > THREAD_ID:a01001e
     > THREAD_NAME:737769363a207461
     > THREAD_NAME:736b2071756575
     >
     > Does this mean that the same thread_id have two thread_name? If
    so then
     > only one thread_name can be stored in
     > char thread_names[3][65536][THREAD_NAME_SIZE];

    No, it means that the thread name is longer than 8 bytes (on a 32-bit
    target, it would be 4 bytes), see the loop here:

    https://git.rtems.org/rtems/tree/cpukit/libtrace/record/record-userext.c#n54

    To get the thread name back from the integers into a char array, you
    have to reverse what this loop did.

Have made changes:
https://github.com/rmeena840/rtems-tools/commit/a6701361eab030698464bab67d63a880d503c90e

Have a look.

The following line will give the same thread_name. There is no need to reverse. I checked the output. The values are the same. snprintf( item_name_str, sizeof( item_name_str ), "%08"PRIx64, item->data );

This change makes no sense.

1. If you store data from a previous record item to use it in the future, then you must always store this information per-CPU. So, this thread_id_name must be per-CPU.

2. Each of the RTEMS_RECORD_THREAD_NAME events, the item->data integer contains up to 4 or 8 chars.

https://git.rtems.org/rtems/tree/cpukit/libtrace/record/record-userext.c#n54

3. You don't need extra memcpy() calls, just store the string directly in ctx->thread_names[api_id][thread_id]. The first RTEMS_RECORD_THREAD_NAME uses ctx->thread_names[api_id][thread_id][0..7], the second uses ctx->thread_names[api_id][thread_id][8..15]. The third and later are an error, just ignore it.

--
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