GSoC Project | Basic Support for Trace Compass

Sebastian Huber sebastian.huber at embedded-brains.de
Tue Aug 6 08:38:51 UTC 2019


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