GDB (xrefs)
Classes | Macros | Functions | Variables
/tmp/gdb-8.1/gdb/ctf.c File Reference
#include "defs.h"
#include "ctf.h"
#include "tracepoint.h"
#include "regcache.h"
#include <sys/stat.h>
#include "exec.h"
#include "completer.h"
#include "inferior.h"
#include "gdbthread.h"
#include "tracefile.h"
#include <ctype.h>
#include <algorithm>

Go to the source code of this file.

Classes

struct  trace_write_handler
 
struct  ctf_trace_file_writer
 

Macros

#define CTF_MAGIC   0xC1FC1FC1
 
#define CTF_SAVE_MAJOR   1
 
#define CTF_SAVE_MINOR   8
 
#define CTF_METADATA_NAME   "metadata"
 
#define CTF_DATASTREAM_NAME   "datastream"
 
#define CTF_EVENT_ID_REGISTER   0
 
#define CTF_EVENT_ID_TSV   1
 
#define CTF_EVENT_ID_MEMORY   2
 
#define CTF_EVENT_ID_FRAME   3
 
#define CTF_EVENT_ID_STATUS   4
 
#define CTF_EVENT_ID_TSV_DEF   5
 
#define CTF_EVENT_ID_TP_DEF   6
 
#define CTF_PID   (2)
 
#define ctf_save_write_uint32(HANDLER, U32)   ctf_save_write (HANDLER, (gdb_byte *) &U32, 4)
 
#define ctf_save_write_int32(HANDLER, INT32)   ctf_save_write ((HANDLER), (gdb_byte *) &(INT32), 4)
 
#define HOST_ENDIANNESS   "le"
 

Functions

static void ctf_save_write_metadata (struct trace_write_handler *handler, const char *format,...) ATTRIBUTE_PRINTF(2
 
static int ctf_save_write (struct trace_write_handler *handler, const gdb_byte *buf, size_t size)
 
static int ctf_save_fseek (struct trace_write_handler *handler, long offset, int whence)
 
static int ctf_save_align_write (struct trace_write_handler *handler, const gdb_byte *buf, size_t size, size_t align_size)
 
static void ctf_save_next_packet (struct trace_write_handler *handler)
 
static void ctf_save_metadata_header (struct trace_write_handler *handler)
 
static void ctf_dtor (struct trace_file_writer *self)
 
static int ctf_target_save (struct trace_file_writer *self, const char *dirname)
 
static void ctf_start (struct trace_file_writer *self, const char *dirname)
 
static void ctf_write_header (struct trace_file_writer *self)
 
static void ctf_write_regblock_type (struct trace_file_writer *self, int size)
 
static void ctf_write_status (struct trace_file_writer *self, struct trace_status *ts)
 
static void ctf_write_uploaded_tsv (struct trace_file_writer *self, struct uploaded_tsv *tsv)
 
static void ctf_write_uploaded_tp (struct trace_file_writer *self, struct uploaded_tp *tp)
 
static void ctf_write_tdesc (struct trace_file_writer *self)
 
static void ctf_write_definition_end (struct trace_file_writer *self)
 
static void ctf_end (struct trace_file_writer *self)
 
static void ctf_write_frame_start (struct trace_file_writer *self, uint16_t tpnum)
 
static void ctf_write_frame_r_block (struct trace_file_writer *self, gdb_byte *buf, int32_t size)
 
static void ctf_write_frame_m_block_header (struct trace_file_writer *self, uint64_t addr, uint16_t length)
 
static void ctf_write_frame_m_block_memory (struct trace_file_writer *self, gdb_byte *buf, uint16_t length)
 
static void ctf_write_frame_v_block (struct trace_file_writer *self, int32_t num, uint64_t val)
 
static void ctf_write_frame_end (struct trace_file_writer *self)
 
struct trace_file_writerctf_trace_file_writer_new (void)
 
void _initialize_ctf (void)
 

Variables

static const struct trace_frame_write_ops ctf_write_frame_ops
 
static const struct trace_file_write_ops ctf_write_ops
 

Macro Definition Documentation

◆ CTF_DATASTREAM_NAME

#define CTF_DATASTREAM_NAME   "datastream"

Definition at line 70 of file ctf.c.

Referenced by ctf_start().

◆ CTF_EVENT_ID_FRAME

#define CTF_EVENT_ID_FRAME   3

Definition at line 77 of file ctf.c.

Referenced by ctf_write_frame_start(), and ctf_write_header().

◆ CTF_EVENT_ID_MEMORY

#define CTF_EVENT_ID_MEMORY   2

Definition at line 76 of file ctf.c.

Referenced by ctf_write_frame_m_block_header(), and ctf_write_header().

◆ CTF_EVENT_ID_REGISTER

#define CTF_EVENT_ID_REGISTER   0

Definition at line 74 of file ctf.c.

Referenced by ctf_write_frame_r_block(), and ctf_write_regblock_type().

◆ CTF_EVENT_ID_STATUS

#define CTF_EVENT_ID_STATUS   4

Definition at line 78 of file ctf.c.

Referenced by ctf_write_status().

◆ CTF_EVENT_ID_TP_DEF

#define CTF_EVENT_ID_TP_DEF   6

Definition at line 80 of file ctf.c.

Referenced by ctf_write_header(), and ctf_write_uploaded_tp().

◆ CTF_EVENT_ID_TSV

#define CTF_EVENT_ID_TSV   1

Definition at line 75 of file ctf.c.

Referenced by ctf_write_frame_v_block(), and ctf_write_header().

◆ CTF_EVENT_ID_TSV_DEF

#define CTF_EVENT_ID_TSV_DEF   5

Definition at line 79 of file ctf.c.

Referenced by ctf_write_header(), and ctf_write_uploaded_tsv().

◆ CTF_MAGIC

#define CTF_MAGIC   0xC1FC1FC1

Definition at line 65 of file ctf.c.

Referenced by ctf_write_frame_start().

◆ CTF_METADATA_NAME

#define CTF_METADATA_NAME   "metadata"

Definition at line 69 of file ctf.c.

Referenced by ctf_start().

◆ CTF_PID

#define CTF_PID   (2)

Definition at line 82 of file ctf.c.

◆ CTF_SAVE_MAJOR

#define CTF_SAVE_MAJOR   1

Definition at line 66 of file ctf.c.

Referenced by ctf_save_metadata_header().

◆ CTF_SAVE_MINOR

#define CTF_SAVE_MINOR   8

Definition at line 67 of file ctf.c.

Referenced by ctf_save_metadata_header().

◆ ctf_save_write_int32

#define ctf_save_write_int32 (   HANDLER,
  INT32 
)    ctf_save_write ((HANDLER), (gdb_byte *) &(INT32), 4)

Definition at line 145 of file ctf.c.

Referenced by ctf_write_status(), ctf_write_uploaded_tp(), and ctf_write_uploaded_tsv().

◆ ctf_save_write_uint32

#define ctf_save_write_uint32 (   HANDLER,
  U32 
)    ctf_save_write (HANDLER, (gdb_byte *) &U32, 4)

Definition at line 139 of file ctf.c.

Referenced by ctf_write_frame_end(), and ctf_write_frame_start().

◆ HOST_ENDIANNESS

#define HOST_ENDIANNESS   "le"

Function Documentation

◆ _initialize_ctf()

void _initialize_ctf ( void  )

Definition at line 1715 of file ctf.c.

References add_target_with_completer(), and filename_completer().

◆ ctf_dtor()

static void ctf_dtor ( struct trace_file_writer self)
static

◆ ctf_end()

static void ctf_end ( struct trace_file_writer self)
static

Definition at line 625 of file ctf.c.

References trace_write_handler::content_size, gdb_assert, and ctf_trace_file_writer::tcs.

◆ ctf_save_align_write()

static int ctf_save_align_write ( struct trace_write_handler handler,
const gdb_byte buf,
size_t  size,
size_t  align_size 
)
static

◆ ctf_save_fseek()

static int ctf_save_fseek ( struct trace_write_handler handler,
long  offset,
int  whence 
)
static

◆ ctf_save_metadata_header()

static void ctf_save_metadata_header ( struct trace_write_handler handler)
static

Definition at line 203 of file ctf.c.

References CTF_SAVE_MAJOR, CTF_SAVE_MINOR, ctf_save_write_metadata(), and HOST_ENDIANNESS.

Referenced by ctf_start().

◆ ctf_save_next_packet()

static void ctf_save_next_packet ( struct trace_write_handler handler)
static

◆ ctf_save_write()

static int ctf_save_write ( struct trace_write_handler handler,
const gdb_byte buf,
size_t  size 
)
static

◆ ctf_save_write_metadata()

static void static void ctf_save_write_metadata ( struct trace_write_handler handler,
const char *  format,
  ... 
)
static

◆ ctf_start()

static void ctf_start ( struct trace_file_writer self,
const char *  dirname 
)
static

◆ ctf_target_save()

static int ctf_target_save ( struct trace_file_writer self,
const char *  dirname 
)
static

Definition at line 300 of file ctf.c.

◆ ctf_trace_file_writer_new()

struct trace_file_writer* ctf_trace_file_writer_new ( void  )

Definition at line 802 of file ctf.c.

References ctf_trace_file_writer::base, ctf_write_ops, trace_file_writer::ops, and XNEW.

Referenced by trace_save_ctf(), and tsave_command().

◆ ctf_write_definition_end()

static void ctf_write_definition_end ( struct trace_file_writer self)
static

Definition at line 616 of file ctf.c.

◆ ctf_write_frame_end()

static void ctf_write_frame_end ( struct trace_file_writer self)
static

◆ ctf_write_frame_m_block_header()

static void ctf_write_frame_m_block_header ( struct trace_file_writer self,
uint64_t  addr,
uint16_t  length 
)
static

Definition at line 681 of file ctf.c.

References CTF_EVENT_ID_MEMORY, ctf_save_align_write(), and ctf_trace_file_writer::tcs.

◆ ctf_write_frame_m_block_memory()

static void ctf_write_frame_m_block_memory ( struct trace_file_writer self,
gdb_byte buf,
uint16_t  length 
)
static

Definition at line 702 of file ctf.c.

References ctf_save_align_write(), and ctf_trace_file_writer::tcs.

◆ ctf_write_frame_r_block()

static void ctf_write_frame_r_block ( struct trace_file_writer self,
gdb_byte buf,
int32_t  size 
)
static

Definition at line 663 of file ctf.c.

References CTF_EVENT_ID_REGISTER, ctf_save_align_write(), size, and ctf_trace_file_writer::tcs.

◆ ctf_write_frame_start()

static void ctf_write_frame_start ( struct trace_file_writer self,
uint16_t  tpnum 
)
static

◆ ctf_write_frame_v_block()

static void ctf_write_frame_v_block ( struct trace_file_writer self,
int32_t  num,
uint64_t  val 
)
static

Definition at line 716 of file ctf.c.

References CTF_EVENT_ID_TSV, ctf_save_align_write(), and ctf_trace_file_writer::tcs.

◆ ctf_write_header()

static void ctf_write_header ( struct trace_file_writer self)
static

◆ ctf_write_regblock_type()

static void ctf_write_regblock_type ( struct trace_file_writer self,
int  size 
)
static

◆ ctf_write_status()

static void ctf_write_status ( struct trace_file_writer self,
struct trace_status ts 
)
static

◆ ctf_write_tdesc()

static void ctf_write_tdesc ( struct trace_file_writer self)
static

Definition at line 607 of file ctf.c.

◆ ctf_write_uploaded_tp()

static void ctf_write_uploaded_tp ( struct trace_file_writer self,
struct uploaded_tp tp 
)
static

◆ ctf_write_uploaded_tsv()

static void ctf_write_uploaded_tsv ( struct trace_file_writer self,
struct uploaded_tsv tsv 
)
static

Variable Documentation

◆ ctf_write_frame_ops

const struct trace_frame_write_ops ctf_write_frame_ops
static
Initial value:
=
{
}
static void ctf_write_frame_m_block_header(struct trace_file_writer *self, uint64_t addr, uint16_t length)
Definition: ctf.c:681
static void ctf_write_frame_end(struct trace_file_writer *self)
Definition: ctf.c:736
static void ctf_write_frame_r_block(struct trace_file_writer *self, gdb_byte *buf, int32_t size)
Definition: ctf.c:663
static void ctf_write_frame_v_block(struct trace_file_writer *self, int32_t num, uint64_t val)
Definition: ctf.c:716
static void ctf_write_frame_m_block_memory(struct trace_file_writer *self, gdb_byte *buf, uint16_t length)
Definition: ctf.c:702
static void ctf_write_frame_start(struct trace_file_writer *self, uint16_t tpnum)
Definition: ctf.c:636

Definition at line 770 of file ctf.c.

◆ ctf_write_ops

const struct trace_file_write_ops ctf_write_ops
static
Initial value:
=
{
NULL,
}
static void ctf_dtor(struct trace_file_writer *self)
Definition: ctf.c:283
static void ctf_write_tdesc(struct trace_file_writer *self)
Definition: ctf.c:607
static void ctf_write_uploaded_tp(struct trace_file_writer *self, struct uploaded_tp *tp)
Definition: ctf.c:524
static void ctf_write_uploaded_tsv(struct trace_file_writer *self, struct uploaded_tsv *tsv)
Definition: ctf.c:490
static void ctf_end(struct trace_file_writer *self)
Definition: ctf.c:625
static void ctf_write_status(struct trace_file_writer *self, struct trace_status *ts)
Definition: ctf.c:449
static void ctf_write_definition_end(struct trace_file_writer *self)
Definition: ctf.c:616
static void ctf_write_regblock_type(struct trace_file_writer *self, int size)
Definition: ctf.c:429
static const struct trace_frame_write_ops ctf_write_frame_ops
Definition: ctf.c:770
static int ctf_target_save(struct trace_file_writer *self, const char *dirname)
Definition: ctf.c:300
static void ctf_write_header(struct trace_file_writer *self)
Definition: ctf.c:346
static void ctf_start(struct trace_file_writer *self, const char *dirname)
Definition: ctf.c:312

Definition at line 782 of file ctf.c.

Referenced by ctf_trace_file_writer_new().