GSoC Project | Basic Support for Trace Compass
Sebastian Huber
sebastian.huber at embedded-brains.de
Tue Aug 6 05:27:33 UTC 2019
On 06/08/2019 07:20, Ravindra Kumar Meena wrote:
> >
> > Have made changes. Simplified the code.
> >
> https://github.com/rmeena840/rtems-tools/commit/9e09be40db85e4e903118f8eb5eb1ea1e41baf46
>
> Yes, this moves into the right direction:
>
> + for( i = 0; i < THREAD_NAME_SIZE - 1; i++ ){
> + if( cctx->thread_names[ api_id ][ thread_id ][ i ] == 0x00 ){
> + cctx->thread_names[ api_id ][ thread_id ][ i ] = (
> thread_name & 0xff );
> + thread_name = ( thread_name >> 8 );
> + }
> + }
>
> On a 32-bit target you may get up to 4 RTEMS_RECORD_THREAD_NAME events,
> on a 64-bit target you may get up to 2 RTEMS_RECORD_THREAD_NAME events.
>
> Your code overwrites the data from previous name events and only the
> last one is visible. You have to add the name index (i) to
> thread_id_name.
>
> The overwrites thing is taken care of by :
> if( cctx->thread_names[ api_id ][ thread_id ][ i ] == 0x00 )
>
> If thread_name is received for the same api_id and thread_id then it
> will write only in empty char position.
For example this sequence of events is generated in case the thread name
exceeds 8 chars:
THREAD_ID:a01001e
THREAD_NAME:737769363a207461
THREAD_NAME:736b2071756575
The decoded thread name is "swi6: task queu"
For each RTEMS_RECORD_THREAD_NAME event you start the loop at i == 0, so
you overwrite your previous data.
> I checked the value with the provided output. The value is the same but
> in reverse order.
It would be good to have the thread names displayed in the right order.
--
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.huber at embedded-brains.de
PGP : Public key available on request.
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
More information about the devel
mailing list