Get trace_regblock_size from metadata instead of event
authorYao Qi <yao@codesourcery.com>
Sat, 19 Apr 2014 02:14:58 +0000 (10:14 +0800)
committerYao Qi <yao@codesourcery.com>
Sat, 19 Apr 2014 06:05:48 +0000 (14:05 +0800)
commit614d5099da07f5899dfac9720f49b9f6f350c1bd
tree1017e3ba53e0930b8b724157b02d30925eb1c02d
parentdac3e7103f2822b42ecbb58e40f70f7ccb802d42
Get trace_regblock_size from metadata instead of event

In ctf trace, for each 'R' block, we save it as a "register" event,
as defined below in metadata.

event {
        name = "register";
        id = 0;
        fields := struct {
                ascii contents[440];
        };
}

Nowadays, we initialize trace_regblock_size by getting the length of
"contents" from a "register" event.  However, 'R' block may not exist
in traceframe, as a result, "register" event doesn't exist in trace file
and trace_regblock_size isn't set.

This patch changes to get trace_regblock_size from metadata (or declaration)
which always exists.

gdb:

2014-04-19  Yao Qi  <yao@codesourcery.com>

* ctf.c (handle_id): New static variable.
(ctf_open_dir): Get handle_id from bt_context_add_trace return
value.  Get the declaration of event "register" and get length
of field "contents".
gdb/ChangeLog
gdb/ctf.c