[PATCH] Write event stream in file
Sebastian Huber
sebastian.huber at embedded-brains.de
Fri Jun 21 07:09:44 UTC 2019
On 21/06/2019 08:57, Ravindra Kumar Meena wrote:
> > seconds = (uint32_t) ( item->ns / 1000000000 );
> > nanoseconds = (uint32_t) ( item->ns % 1000000000 );
> > + ns=nanoseconds;
>
> Why not move the nanoseconds variable into the upper block?
>
> Okay
>
>
> > fprintf( f, "%" PRIu32 ".%09" PRIu32 ":", seconds, nanoseconds );
> > } else {
>
> Which value has "ns" in this path?
>
> na does not have a unique value. It is changing eveytime print_item() is
> called upon
>
>
> > fprintf( f, "*:" );
> > @@ -153,6 +164,22 @@ static void print_item( FILE *f, const
> client_item *item )
> > rtems_record_event_text( item->event ),
> > item->data
> > );
> > +
> > + FILE *fptr = fopen("event", "a");
>
> How often gets this file opened and closed? Do you think that
> opening and closing a file is a cheap operation? Could there be a
> more efficient solution?
>
> I would like to know your approach. I will implement that only. It's
> better to implement your approach instead of mine. It will save some time.
The
static void print_item( FILE *f, const client_item *item )
gets already a file, please use it.
The file is currently stdout. This should be changed to an event stream
file. Add the file pointer to client_context and open the file in main().
>
>
> > +
> > + if (fptr == NULL)
> > + {
> > + printf("Could not open file");
> > + return 0;
>
> Can void functions return something?
>
> Ooops. I didn't see the void.
You get also a compiler warning for this.
../misc/record/record-main.c: In function ‘print_item’:
../misc/record/record-main.c:173:15: warning: ‘return’ with a value, in
function returning void
return 0;
^
>
>
> > + }
> > +
> > + ctf_item->cpu=item->cpu;
>
> To which object points the the ctf_item pointer here?
>
> Are you expecting pointer here?
The ctf_item pointer points to a random memory location. You get also a
warning for this:
../misc/record/record-main.c: In function ‘handler’:
../misc/record/record-main.c:181:3: warning: ‘ctf_item’ may be used
uninitialized in this function [-Wmaybe-uninitialized]
fprintf(fptr,ctf_item);
^~~~~~~~~~~~~~~~~~~~~~
It must be:
ctf_event ctf_item;
>
>
> > + ctf_item->event=item->event;
> > + ctf_item->data=item->data;
> > + ctf_item->ns=ns;
> > +
> > + fprintf(fptr,ctf_item);
> > + fclose(fptr);
> > }
> >
> > static void flush_items( client_context *cctx )
> > --
> > 2.7.4
>
> Did you compile and run the program with this patch?
>
>
> Yes the rtems-tools was building successfully but I was getting nothing
> in file.
A build with such warnings is not successful. You can use GDB to debug
your program.
--
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