Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Yao Qi <yao@codesourcery.com>
To: Pedro Alves <palves@redhat.com>
Cc: <gdb-patches@sourceware.org>
Subject: Re: [PATCH 1/5] Refactor 'tsave'
Date: Fri, 01 Mar 2013 11:26:00 -0000	[thread overview]
Message-ID: <5130900F.6010500@codesourcery.com> (raw)
In-Reply-To: <51307D4C.5080805@redhat.com>

On 03/01/2013 06:05 PM, Pedro Alves wrote:
> And what is the format of that "raw" data?  Exactly the format

"raw data" doesn't mean format-less data.  The format here is how data 
are organized in trace *buffer*.  Data stored in trace buffer are 
treated as "raw".

> described in the manual, in the "Trace File Format" node:
>
> "The trace frame section consists of a number of consecutive frames.
> Each frame begins with a two-byte tracepoint number, followed by a
> four-byte size giving the amount of data in the frame.  The data in
> the frame consists of a number of blocks, each introduced by a
> character indicating its type (at least register, memory, and trace
> state variable).  The data in this section is raw binary, not a
> hexadecimal or other encoding; its endianness matches the target's
> endianness."

Yes, this is only about TFILE format, instead of how data are stored in 
trace buffer, which is GDB internal.

>
> So it's not really "raw" binary data -- there's a format, with
> headers and all.  And it can't be any other format, otherwise
> the patch's design won't work... (**)
>

I never say "raw data is binary data or raw data is format-less data".
My point is raw data has its own format, and GDB is free to store them
directly by write_raw_data or parse them (according to how data are 
stored in trace buffers) first and store them in some
format (CTF and even TFILE).

>> >
>> >TFILE is a format that composed by ascii definition part and trace frames dumped from the raw data directly.  There could be another trace file format FOO that stores raw data as well.
> It's not "raw".  It's trace frames in gdb's trace file format
> as defined in the manual.
>

It is just because TFILE format use the same format that data are
stored in trace buffers.  One day, we can use another way to organize
the trace buffers, but still output TFILE format in default.  For 
example, we may add checksum for each block in trace buffers in 
GDBserver in the future, but still generate TFILE format trace file in 
GDB side.  When we get raw data (with checksum in each block) from the 
remote target, can we call them "tfile format data"?.  Another example 
is GDBserver can send the format of trace buffers to GDB first via xml, 
and GDB can parse the data got from GDBserver according the xml 
description, and save them into CTF or TFILE format.  We can't call the 
data from the remote target "tfile format data".

>> >
>>>>> >>> >+    {
>>>>> >>> >+      uint16_t tp_num;
>>>>> >>> >+      uint32_t tf_size;
>>>>> >>> >+      unsigned int read_length;
>>>>> >>> >+      unsigned int block;
>>>>> >>> >+
>>>>> >>> >+      /* Read the first six bytes in, which is the tracepoint
>>>>> >>> >+         number and trace frame size.  */
>>>>> >>> >+      gotten = target_get_raw_trace_data (buf, offset, 6);
>>>>> >>> >+
>>>>> >>> >+      if (gotten == 0)
>>>>> >>> >+        break;
>>>>> >>> >+      tp_num = (uint16_t)
>>>>> >>> >+        extract_unsigned_integer (&buf[0], 2, byte_order);
>>>>> >>> >+
>>>>> >>> >+      tf_size = (uint32_t)
>>>>> >>> >+        extract_unsigned_integer (&buf[2], 4, byte_order);
> (**) ... as can be seen here and below with
>
> +		  switch (block_type)
> +		    {
> +		    case 'R':
> ...
> +		    case 'M':
> ...
>
> etc.
>
> This is parsing the "raw"'s headers, in gdb's trace file format.
> This as the else branch.  The "then" branch only works if the target
> can interpret "buf" as trace frames in gdb's trace file format.
>
Again, it is not trace file format.  It is how data are stored in trace 
buffers.

-- 
Yao (齐尧)


  parent reply	other threads:[~2013-03-01 11:26 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-02-27  2:18 [PATCH 0/5, 2nd try] CTF Support Yao Qi
2013-02-27  2:18 ` [PATCH 1/5] Refactor 'tsave' Yao Qi
2013-02-28 16:49   ` Pedro Alves
2013-03-01  8:58     ` Yao Qi
2013-03-01 10:05       ` Pedro Alves
2013-03-01 10:41         ` Pedro Alves
2013-03-01 11:26         ` Yao Qi [this message]
2013-03-01 12:13           ` Pedro Alves
2013-03-01 15:55             ` Yao Qi
2013-03-05 20:59               ` Pedro Alves
2013-03-03  8:45         ` Yao Qi
2013-02-27  2:19 ` [PATCH 5/5] ctf test: report.exp Yao Qi
2013-02-27 18:48   ` Pedro Alves
2013-02-28  1:36     ` Yao Qi
2013-02-28 18:30       ` Pedro Alves
2013-02-27  2:19 ` [PATCH 3/5] Read CTF by the ctf target Yao Qi
2013-02-28 17:59   ` Pedro Alves
2013-03-01  2:38     ` Hui Zhu
2013-05-07 13:07       ` Mathieu Desnoyers
2013-05-07 13:24         ` Yao Qi
2013-05-07 13:28           ` Mathieu Desnoyers
2013-03-01  7:55     ` Yao Qi
2013-03-01  9:15       ` Pedro Alves
2013-03-01 15:51   ` Tom Tromey
2013-03-03 10:39     ` Yao Qi
2013-03-03 10:46       ` Yao Qi
2013-02-27  2:19 ` [PATCH 4/5] ctf doc and NEWS Yao Qi
2013-02-27 18:39   ` Eli Zaretskii
2013-02-27  2:19 ` [PATCH 2/5] Save trace into CTF format Yao Qi
2013-02-28 13:17   ` Yao Qi
2013-02-28 13:17     ` Andreas Schwab
2013-02-28 17:19       ` Pedro Alves
2013-03-01 19:22     ` Tom Tromey
2013-03-03 10:19       ` Yao Qi
2013-03-07 21:29         ` Tom Tromey
2013-03-16  2:30         ` Joel Brobecker
2013-03-16  4:22           ` Yao Qi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5130900F.6010500@codesourcery.com \
    --to=yao@codesourcery.com \
    --cc=gdb-patches@sourceware.org \
    --cc=palves@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox