GDB (xrefs)
Classes | Macros | Typedefs | Functions | Variables
/tmp/gdb-8.1/gdb/tracefile-tfile.c File Reference
#include "defs.h"
#include "tracefile.h"
#include "readline/tilde.h"
#include "filestuff.h"
#include "rsp-low.h"
#include "regcache.h"
#include "inferior.h"
#include "gdbthread.h"
#include "exec.h"
#include "completer.h"
#include "filenames.h"
#include "remote.h"
#include "xml-tdesc.h"
#include "target-descriptions.h"
#include "buffer.h"
#include <algorithm>

Go to the source code of this file.

Classes

struct  tfile_trace_file_writer
 

Macros

#define O_LARGEFILE   0
 
#define MAX_TRACE_UPLOAD   2000
 
#define TRACE_HEADER_SIZE   8
 
#define TFILE_PID   (1)
 

Typedefs

typedef int(* walk_blocks_callback_func) (char blocktype, void *data)
 

Functions

static int tfile_target_save (struct trace_file_writer *self, const char *filename)
 
static void tfile_dtor (struct trace_file_writer *self)
 
static void tfile_start (struct trace_file_writer *self, const char *filename)
 
static void tfile_write_header (struct trace_file_writer *self)
 
static void tfile_write_regblock_type (struct trace_file_writer *self, int size)
 
static void tfile_write_status (struct trace_file_writer *self, struct trace_status *ts)
 
static void tfile_write_uploaded_tsv (struct trace_file_writer *self, struct uploaded_tsv *utsv)
 
static void tfile_write_uploaded_tp (struct trace_file_writer *self, struct uploaded_tp *utp)
 
static void tfile_write_tdesc (struct trace_file_writer *self)
 
static void tfile_write_definition_end (struct trace_file_writer *self)
 
static void tfile_write_raw_data (struct trace_file_writer *self, gdb_byte *buf, LONGEST len)
 
static void tfile_end (struct trace_file_writer *self)
 
struct trace_file_writertfile_trace_file_writer_new (void)
 
static void tfile_append_tdesc_line (const char *line)
 
static void tfile_interp_line (char *line, struct uploaded_tp **utpp, struct uploaded_tsv **utsvp)
 
static void tfile_read (gdb_byte *readbuf, int size)
 
static void tfile_open (const char *arg, int from_tty)
 
static void tfile_close (struct target_ops *self)
 
static void tfile_files_info (struct target_ops *t)
 
static void tfile_get_tracepoint_status (struct target_ops *self, struct breakpoint *tp, struct uploaded_tp *utp)
 
static CORE_ADDR tfile_get_traceframe_address (off_t tframe_offset)
 
static int tfile_trace_find (struct target_ops *self, enum trace_find_type type, int num, CORE_ADDR addr1, CORE_ADDR addr2, int *tpp)
 
static int match_blocktype (char blocktype, void *data)
 
static int traceframe_walk_blocks (walk_blocks_callback_func callback, int pos, void *data)
 
static int traceframe_find_block_type (char type_wanted, int pos)
 
static void tfile_fetch_registers (struct target_ops *ops, struct regcache *regcache, int regno)
 
static enum target_xfer_status tfile_xfer_partial_features (struct target_ops *ops, const char *annex, gdb_byte *readbuf, const gdb_byte *writebuf, ULONGEST offset, ULONGEST len, ULONGEST *xfered_len)
 
static enum target_xfer_status tfile_xfer_partial (struct target_ops *ops, enum target_object object, const char *annex, gdb_byte *readbuf, const gdb_byte *writebuf, ULONGEST offset, ULONGEST len, ULONGEST *xfered_len)
 
static int tfile_get_trace_state_variable_value (struct target_ops *self, int tsvnum, LONGEST *val)
 
static int build_traceframe_info (char blocktype, void *data)
 
static traceframe_info_up tfile_traceframe_info (struct target_ops *self)
 
static void init_tfile_ops (void)
 
void _initialize_tracefile_tfile (void)
 

Variables

static const struct trace_file_write_ops tfile_write_ops
 
static struct target_ops tfile_ops
 
static char * trace_filename
 
static int trace_fd = -1
 
static off_t trace_frames_offset
 
static off_t cur_offset
 
static int cur_data_size
 
int trace_regblock_size
 
static struct buffer trace_tdesc
 

Macro Definition Documentation

◆ MAX_TRACE_UPLOAD

#define MAX_TRACE_UPLOAD   2000

Definition at line 213 of file tracefile-tfile.c.

Referenced by tfile_write_uploaded_tp().

◆ O_LARGEFILE

#define O_LARGEFILE   0

Definition at line 38 of file tracefile-tfile.c.

Referenced by tfile_open().

◆ TFILE_PID

#define TFILE_PID   (1)

Definition at line 389 of file tracefile-tfile.c.

Referenced by tfile_open().

◆ TRACE_HEADER_SIZE

#define TRACE_HEADER_SIZE   8

Definition at line 387 of file tracefile-tfile.c.

Referenced by tfile_open().

Typedef Documentation

◆ walk_blocks_callback_func

typedef int(* walk_blocks_callback_func) (char blocktype, void *data)

Definition at line 755 of file tracefile-tfile.c.

Function Documentation

◆ _initialize_tracefile_tfile()

void _initialize_tracefile_tfile ( void  )

◆ build_traceframe_info()

static int build_traceframe_info ( char  blocktype,
void *  data 
)
static

◆ init_tfile_ops()

static void init_tfile_ops ( void  )
static

◆ match_blocktype()

static int match_blocktype ( char  blocktype,
void *  data 
)
static

Definition at line 761 of file tracefile-tfile.c.

Referenced by traceframe_find_block_type().

◆ tfile_append_tdesc_line()

static void tfile_append_tdesc_line ( const char *  line)
static

Definition at line 1104 of file tracefile-tfile.c.

References buffer_grow_str, and trace_tdesc.

Referenced by tfile_interp_line().

◆ tfile_close()

static void tfile_close ( struct target_ops self)
static

◆ tfile_dtor()

static void tfile_dtor ( struct trace_file_writer self)
static

◆ tfile_end()

static void tfile_end ( struct trace_file_writer self)
static

◆ tfile_fetch_registers()

static void tfile_fetch_registers ( struct target_ops ops,
struct regcache regcache,
int  regno 
)
static

◆ tfile_files_info()

static void tfile_files_info ( struct target_ops t)
static

Definition at line 607 of file tracefile-tfile.c.

References printf_filtered(), and trace_filename.

Referenced by init_tfile_ops().

◆ tfile_get_trace_state_variable_value()

static int tfile_get_trace_state_variable_value ( struct target_ops self,
int  tsvnum,
LONGEST val 
)
static

◆ tfile_get_traceframe_address()

static CORE_ADDR tfile_get_traceframe_address ( off_t  tframe_offset)
static

◆ tfile_get_tracepoint_status()

static void tfile_get_tracepoint_status ( struct target_ops self,
struct breakpoint tp,
struct uploaded_tp utp 
)
static

Definition at line 613 of file tracefile-tfile.c.

Referenced by init_tfile_ops().

◆ tfile_interp_line()

static void tfile_interp_line ( char *  line,
struct uploaded_tp **  utpp,
struct uploaded_tsv **  utsvp 
)
static

◆ tfile_open()

static void tfile_open ( const char *  arg,
int  from_tty 
)
static

◆ tfile_read()

static void tfile_read ( gdb_byte readbuf,
int  size 
)
static

◆ tfile_start()

static void tfile_start ( struct trace_file_writer self,
const char *  filename 
)
static

◆ tfile_target_save()

static int tfile_target_save ( struct trace_file_writer self,
const char *  filename 
)
static

Definition at line 58 of file tracefile-tfile.c.

References err, and target_save_trace_data.

◆ tfile_trace_file_writer_new()

struct trace_file_writer* tfile_trace_file_writer_new ( void  )

◆ tfile_trace_find()

static int tfile_trace_find ( struct target_ops self,
enum trace_find_type  type,
int  num,
CORE_ADDR  addr1,
CORE_ADDR  addr2,
int *  tpp 
)
static

◆ tfile_traceframe_info()

static traceframe_info_up tfile_traceframe_info ( struct target_ops self)
static

Definition at line 1091 of file tracefile-tfile.c.

References build_traceframe_info(), and traceframe_walk_blocks().

Referenced by init_tfile_ops().

◆ tfile_write_definition_end()

static void tfile_write_definition_end ( struct trace_file_writer self)
static

Definition at line 310 of file tracefile-tfile.c.

References tfile_trace_file_writer::fp.

◆ tfile_write_header()

static void tfile_write_header ( struct trace_file_writer self)
static

◆ tfile_write_raw_data()

static void tfile_write_raw_data ( struct trace_file_writer self,
gdb_byte buf,
LONGEST  len 
)
static

◆ tfile_write_regblock_type()

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

Definition at line 120 of file tracefile-tfile.c.

References tfile_trace_file_writer::fp, and size.

◆ tfile_write_status()

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

◆ tfile_write_tdesc()

static void tfile_write_tdesc ( struct trace_file_writer self)
static

◆ tfile_write_uploaded_tp()

static void tfile_write_uploaded_tp ( struct trace_file_writer self,
struct uploaded_tp utp 
)
static

◆ tfile_write_uploaded_tsv()

static void tfile_write_uploaded_tsv ( struct trace_file_writer self,
struct uploaded_tsv utsv 
)
static

◆ tfile_xfer_partial()

static enum target_xfer_status tfile_xfer_partial ( struct target_ops ops,
enum target_object  object,
const char *  annex,
gdb_byte readbuf,
const gdb_byte writebuf,
ULONGEST  offset,
ULONGEST  len,
ULONGEST xfered_len 
)
static

◆ tfile_xfer_partial_features()

static enum target_xfer_status tfile_xfer_partial_features ( struct target_ops ops,
const char *  annex,
gdb_byte readbuf,
const gdb_byte writebuf,
ULONGEST  offset,
ULONGEST  len,
ULONGEST xfered_len 
)
static

◆ traceframe_find_block_type()

static int traceframe_find_block_type ( char  type_wanted,
int  pos 
)
static

◆ traceframe_walk_blocks()

static int traceframe_walk_blocks ( walk_blocks_callback_func  callback,
int  pos,
void *  data 
)
static

Variable Documentation

◆ cur_data_size

int cur_data_size
static

Definition at line 395 of file tracefile-tfile.c.

Referenced by tfile_trace_find(), and traceframe_walk_blocks().

◆ cur_offset

off_t cur_offset
static

◆ tfile_ops

struct target_ops tfile_ops
static

Definition at line 383 of file tracefile-tfile.c.

Referenced by _initialize_tracefile_tfile(), init_tfile_ops(), and tfile_open().

◆ tfile_write_ops

const struct trace_file_write_ops tfile_write_ops
static
Initial value:
=
{
NULL,
}
static void tfile_dtor(struct trace_file_writer *self)
static void tfile_write_uploaded_tsv(struct trace_file_writer *self, struct uploaded_tsv *utsv)
static void tfile_write_regblock_type(struct trace_file_writer *self, int size)
static void tfile_write_definition_end(struct trace_file_writer *self)
static int tfile_target_save(struct trace_file_writer *self, const char *filename)
static void tfile_write_tdesc(struct trace_file_writer *self)
static void tfile_write_header(struct trace_file_writer *self)
static void tfile_write_uploaded_tp(struct trace_file_writer *self, struct uploaded_tp *utp)
static void tfile_end(struct trace_file_writer *self)
static void tfile_start(struct trace_file_writer *self, const char *filename)
static void tfile_write_raw_data(struct trace_file_writer *self, gdb_byte *buf, LONGEST len)
static void tfile_write_status(struct trace_file_writer *self, struct trace_status *ts)

Definition at line 349 of file tracefile-tfile.c.

Referenced by tfile_trace_file_writer_new().

◆ trace_fd

int trace_fd = -1
static

◆ trace_filename

char* trace_filename
static

Definition at line 391 of file tracefile-tfile.c.

Referenced by tfile_close(), tfile_files_info(), tfile_open(), and tfile_read().

◆ trace_frames_offset

off_t trace_frames_offset
static

Definition at line 393 of file tracefile-tfile.c.

Referenced by tfile_open(), and tfile_trace_find().

◆ trace_regblock_size

int trace_regblock_size

◆ trace_tdesc

struct buffer trace_tdesc
static