| Index: gdb/common/btrace-common.h
|
| diff --git a/gdb/common/btrace-common.h b/gdb/common/btrace-common.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..b157c7c000d4ea320a224fd9def0d5e0942a32b4
|
| --- /dev/null
|
| +++ b/gdb/common/btrace-common.h
|
| @@ -0,0 +1,73 @@
|
| +/* Branch trace support for GDB, the GNU debugger.
|
| +
|
| + Copyright (C) 2013 Free Software Foundation, Inc.
|
| +
|
| + Contributed by Intel Corp. <markus.t.metzger@intel.com>.
|
| +
|
| + This file is part of GDB.
|
| +
|
| + This program is free software; you can redistribute it and/or modify
|
| + it under the terms of the GNU General Public License as published by
|
| + the Free Software Foundation; either version 3 of the License, or
|
| + (at your option) any later version.
|
| +
|
| + This program is distributed in the hope that it will be useful,
|
| + but WITHOUT ANY WARRANTY; without even the implied warranty of
|
| + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
| + GNU General Public License for more details.
|
| +
|
| + You should have received a copy of the GNU General Public License
|
| + along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
| +
|
| +#ifndef BTRACE_COMMON_H
|
| +#define BTRACE_COMMON_H
|
| +
|
| +/* Branch tracing (btrace) is a per-thread control-flow execution trace of the
|
| + inferior. For presentation purposes, the branch trace is represented as a
|
| + list of sequential control-flow blocks, one such list per thread. */
|
| +
|
| +#ifdef GDBSERVER
|
| +# include "server.h"
|
| +#else
|
| +# include "defs.h"
|
| +#endif
|
| +
|
| +#include "vec.h"
|
| +
|
| +/* A branch trace block.
|
| +
|
| + This represents a block of sequential control-flow. Adjacent blocks will be
|
| + connected via calls, returns, or jumps. The latter can be direct or
|
| + indirect, conditional or unconditional. Branches can further be
|
| + asynchronous, e.g. interrupts. */
|
| +struct btrace_block
|
| +{
|
| + /* The address of the first byte of the first instruction in the block. */
|
| + CORE_ADDR begin;
|
| +
|
| + /* The address of the first byte of the last instruction in the block. */
|
| + CORE_ADDR end;
|
| +};
|
| +
|
| +/* Branch trace is represented as a vector of branch trace blocks starting with
|
| + the most recent block. */
|
| +typedef struct btrace_block btrace_block_s;
|
| +
|
| +/* Define functions operating on a vector of branch trace blocks. */
|
| +DEF_VEC_O (btrace_block_s);
|
| +
|
| +/* Target specific branch trace information. */
|
| +struct btrace_target_info;
|
| +
|
| +/* Enumeration of btrace read types. */
|
| +
|
| +enum btrace_read_type
|
| +{
|
| + /* Send all available trace. */
|
| + btrace_read_all,
|
| +
|
| + /* Send all available trace, if it changed. */
|
| + btrace_read_new
|
| +};
|
| +
|
| +#endif /* BTRACE_COMMON_H */
|
|
|