GDB (xrefs)
Loading...
Searching...
No Matches
Classes | Macros | Functions | Variables
tracectf.c File Reference
#include "defs.h"
#include "tracectf.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>
#include "gdbsupport/filestuff.h"
#include "gdbarch.h"

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 ()
 

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 72 of file tracectf.c.

Referenced by ctf_start().

◆ CTF_EVENT_ID_FRAME

#define CTF_EVENT_ID_FRAME   3

Definition at line 79 of file tracectf.c.

Referenced by ctf_write_frame_start(), and ctf_write_header().

◆ CTF_EVENT_ID_MEMORY

#define CTF_EVENT_ID_MEMORY   2

Definition at line 78 of file tracectf.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 76 of file tracectf.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 80 of file tracectf.c.

Referenced by ctf_write_status().

◆ CTF_EVENT_ID_TP_DEF

#define CTF_EVENT_ID_TP_DEF   6

Definition at line 82 of file tracectf.c.

Referenced by ctf_write_header(), and ctf_write_uploaded_tp().

◆ CTF_EVENT_ID_TSV

#define CTF_EVENT_ID_TSV   1

Definition at line 77 of file tracectf.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 81 of file tracectf.c.

Referenced by ctf_write_header(), and ctf_write_uploaded_tsv().

◆ CTF_MAGIC

#define CTF_MAGIC   0xC1FC1FC1

Definition at line 67 of file tracectf.c.

Referenced by ctf_write_frame_start().

◆ CTF_METADATA_NAME

#define CTF_METADATA_NAME   "metadata"

Definition at line 71 of file tracectf.c.

Referenced by ctf_start().

◆ CTF_PID

#define CTF_PID   (2)

Definition at line 84 of file tracectf.c.

◆ CTF_SAVE_MAJOR

#define CTF_SAVE_MAJOR   1

Definition at line 68 of file tracectf.c.

Referenced by ctf_save_metadata_header().

◆ CTF_SAVE_MINOR

#define CTF_SAVE_MINOR   8

Definition at line 69 of file tracectf.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 147 of file tracectf.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 141 of file tracectf.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 ( )

Definition at line 1722 of file tracectf.c.

Referenced by initialize_all_files().

◆ 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 631 of file tracectf.c.

References trace_write_handler::content_size, 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 205 of file tracectf.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 302 of file tracectf.c.

◆ ctf_trace_file_writer_new()

struct trace_file_writer * ctf_trace_file_writer_new ( void )

Definition at line 808 of file tracectf.c.

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

Referenced by trace_save_ctf().

◆ ctf_write_definition_end()

static void ctf_write_definition_end ( struct trace_file_writer * self)
static

◆ 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

◆ 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 708 of file tracectf.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

◆ 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 722 of file tracectf.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 613 of file tracectf.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_end(struct trace_file_writer *self)
Definition tracectf.c:742
static void ctf_write_frame_m_block_header(struct trace_file_writer *self, uint64_t addr, uint16_t length)
Definition tracectf.c:687
static void ctf_write_frame_v_block(struct trace_file_writer *self, int32_t num, uint64_t val)
Definition tracectf.c:722
static void ctf_write_frame_r_block(struct trace_file_writer *self, gdb_byte *buf, int32_t size)
Definition tracectf.c:669
static void ctf_write_frame_start(struct trace_file_writer *self, uint16_t tpnum)
Definition tracectf.c:642
static void ctf_write_frame_m_block_memory(struct trace_file_writer *self, gdb_byte *buf, uint16_t length)
Definition tracectf.c:708

Definition at line 776 of file tracectf.c.

◆ ctf_write_ops

const struct trace_file_write_ops ctf_write_ops
static
Initial value:
=
{
NULL,
}
static void ctf_write_tdesc(struct trace_file_writer *self)
Definition tracectf.c:613
static void ctf_write_uploaded_tsv(struct trace_file_writer *self, struct uploaded_tsv *tsv)
Definition tracectf.c:494
static void ctf_start(struct trace_file_writer *self, const char *dirname)
Definition tracectf.c:314
static void ctf_write_header(struct trace_file_writer *self)
Definition tracectf.c:350
static void ctf_write_uploaded_tp(struct trace_file_writer *self, struct uploaded_tp *tp)
Definition tracectf.c:528
static void ctf_end(struct trace_file_writer *self)
Definition tracectf.c:631
static const struct trace_frame_write_ops ctf_write_frame_ops
Definition tracectf.c:776
static void ctf_write_status(struct trace_file_writer *self, struct trace_status *ts)
Definition tracectf.c:453
static void ctf_write_regblock_type(struct trace_file_writer *self, int size)
Definition tracectf.c:433
static int ctf_target_save(struct trace_file_writer *self, const char *dirname)
Definition tracectf.c:302
static void ctf_dtor(struct trace_file_writer *self)
Definition tracectf.c:285
static void ctf_write_definition_end(struct trace_file_writer *self)
Definition tracectf.c:622

Definition at line 788 of file tracectf.c.

Referenced by ctf_trace_file_writer_new().