GDB (xrefs)
Classes | Macros | Typedefs | Enumerations | Functions | Variables
/tmp/gdb-8.1/gdb/record-full.c File Reference
#include "defs.h"
#include "gdbcmd.h"
#include "regcache.h"
#include "gdbthread.h"
#include "event-top.h"
#include "completer.h"
#include "arch-utils.h"
#include "gdbcore.h"
#include "exec.h"
#include "record.h"
#include "record-full.h"
#include "elf-bfd.h"
#include "gcore.h"
#include "event-loop.h"
#include "inf-loop.h"
#include "gdb_bfd.h"
#include "observer.h"
#include "infrun.h"
#include "common/gdb_unlinker.h"
#include "common/byte-vector.h"
#include <signal.h>

Go to the source code of this file.

Classes

struct  record_full_mem_entry
 
struct  record_full_reg_entry
 
struct  record_full_end_entry
 
struct  record_full_entry
 
struct  record_full_core_buf_entry
 
struct  record_full_breakpoint
 

Macros

#define DEFAULT_RECORD_FULL_INSN_MAX_NUM   200000
 
#define RECORD_FULL_IS_REPLAY   (record_full_list->next || execution_direction == EXEC_REVERSE)
 
#define RECORD_FULL_FILE_MAGIC   netorder32(0x20091016)
 

Typedefs

typedef struct record_full_breakpointrecord_full_breakpoint_p
 

Enumerations

enum  record_full_type { record_full_end = 0, record_full_reg, record_full_mem }
 

Functions

int record_full_is_used (void)
 
static void record_full_goto_insn (struct record_full_entry *entry, enum exec_direction_kind dir)
 
static void record_full_save (struct target_ops *self, const char *recfilename)
 
static struct record_full_entryrecord_full_reg_alloc (struct regcache *regcache, int regnum)
 
static void record_full_reg_release (struct record_full_entry *rec)
 
static struct record_full_entryrecord_full_mem_alloc (CORE_ADDR addr, int len)
 
static void record_full_mem_release (struct record_full_entry *rec)
 
static struct record_full_entryrecord_full_end_alloc (void)
 
static void record_full_end_release (struct record_full_entry *rec)
 
static enum record_full_type record_full_entry_release (struct record_full_entry *rec)
 
static void record_full_list_release (struct record_full_entry *rec)
 
static void record_full_list_release_following (struct record_full_entry *rec)
 
static void record_full_list_release_first (void)
 
static void record_full_arch_list_add (struct record_full_entry *rec)
 
static gdb_byterecord_full_get_loc (struct record_full_entry *rec)
 
int record_full_arch_list_add_reg (struct regcache *regcache, int regnum)
 
int record_full_arch_list_add_mem (CORE_ADDR addr, int len)
 
int record_full_arch_list_add_end (void)
 
static void record_full_check_insn_num (void)
 
static void record_full_arch_list_cleanups (void *ignore)
 
static void record_full_message (struct regcache *regcache, enum gdb_signal signal)
 
static bool record_full_message_wrapper_safe (struct regcache *regcache, enum gdb_signal signal)
 
scoped_restore_tmpl< int > record_full_gdb_operation_disable_set (void)
 
static void record_full_exec_insn (struct regcache *regcache, struct gdbarch *gdbarch, struct record_full_entry *entry)
 
static void record_full_restore (void)
 
static void record_full_async_inferior_event_handler (gdb_client_data data)
 
static void record_full_core_open_1 (const char *name, int from_tty)
 
static void record_full_open_1 (const char *name, int from_tty)
 
static void record_full_init_record_breakpoints (void)
 
static void record_full_open (const char *name, int from_tty)
 
static void record_full_close (struct target_ops *self)
 
static void record_full_async (struct target_ops *ops, int enable)
 
static void record_full_resume (struct target_ops *ops, ptid_t ptid, int step, enum gdb_signal signal)
 
static void record_full_commit_resume (struct target_ops *ops)
 
static void record_full_sig_handler (int signo)
 
static void record_full_wait_cleanups (void *ignore)
 
static ptid_t record_full_wait_1 (struct target_ops *ops, ptid_t ptid, struct target_waitstatus *status, int options)
 
static ptid_t record_full_wait (struct target_ops *ops, ptid_t ptid, struct target_waitstatus *status, int options)
 
static int record_full_stopped_by_watchpoint (struct target_ops *ops)
 
static int record_full_stopped_data_address (struct target_ops *ops, CORE_ADDR *addr_p)
 
static int record_full_stopped_by_sw_breakpoint (struct target_ops *ops)
 
static int record_full_supports_stopped_by_sw_breakpoint (struct target_ops *ops)
 
static int record_full_stopped_by_hw_breakpoint (struct target_ops *ops)
 
static int record_full_supports_stopped_by_hw_breakpoint (struct target_ops *ops)
 
static void record_full_registers_change (struct regcache *regcache, int regnum)
 
static void record_full_store_registers (struct target_ops *ops, struct regcache *regcache, int regno)
 
static enum target_xfer_status record_full_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)
 
 DEF_VEC_P (record_full_breakpoint_p)
 
 VEC (record_full_breakpoint_p)
 
static int record_full_insert_breakpoint (struct target_ops *ops, struct gdbarch *gdbarch, struct bp_target_info *bp_tgt)
 
static int record_full_remove_breakpoint (struct target_ops *ops, struct gdbarch *gdbarch, struct bp_target_info *bp_tgt, enum remove_bp_reason reason)
 
static int record_full_can_execute_reverse (struct target_ops *self)
 
static gdb_byterecord_full_get_bookmark (struct target_ops *self, const char *args, int from_tty)
 
static void record_full_goto_bookmark (struct target_ops *self, const gdb_byte *raw_bookmark, int from_tty)
 
static enum exec_direction_kind record_full_execution_direction (struct target_ops *self)
 
enum record_method record_full_record_method (struct target_ops *self, ptid_t ptid)
 
static void record_full_info (struct target_ops *self)
 
static void record_full_delete (struct target_ops *self)
 
static int record_full_is_replaying (struct target_ops *self, ptid_t ptid)
 
static int record_full_will_replay (struct target_ops *self, ptid_t ptid, int dir)
 
static void record_full_goto_entry (struct record_full_entry *p)
 
static void record_full_goto_begin (struct target_ops *self)
 
static void record_full_goto_end (struct target_ops *self)
 
static void record_full_goto (struct target_ops *self, ULONGEST target_insn)
 
static void record_full_stop_replaying (struct target_ops *self)
 
static void init_record_full_ops (void)
 
static void record_full_core_resume (struct target_ops *ops, ptid_t ptid, int step, enum gdb_signal signal)
 
static void record_full_core_kill (struct target_ops *ops)
 
static void record_full_core_fetch_registers (struct target_ops *ops, struct regcache *regcache, int regno)
 
static void record_full_core_prepare_to_store (struct target_ops *self, struct regcache *regcache)
 
static void record_full_core_store_registers (struct target_ops *ops, struct regcache *regcache, int regno)
 
static enum target_xfer_status record_full_core_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 record_full_core_insert_breakpoint (struct target_ops *ops, struct gdbarch *gdbarch, struct bp_target_info *bp_tgt)
 
static int record_full_core_remove_breakpoint (struct target_ops *ops, struct gdbarch *gdbarch, struct bp_target_info *bp_tgt, enum remove_bp_reason reason)
 
static int record_full_core_has_execution (struct target_ops *ops, ptid_t the_ptid)
 
static void init_record_full_core_ops (void)
 
static void bfdcore_read (bfd *obfd, asection *osec, void *buf, int len, int *offset)
 
static uint64_t netorder64 (uint64_t input)
 
static uint32_t netorder32 (uint32_t input)
 
static void bfdcore_write (bfd *obfd, asection *osec, void *buf, int len, int *offset)
 
static void cmd_record_full_restore (const char *args, int from_tty)
 
static void cmd_record_full_start (const char *args, int from_tty)
 
static void set_record_full_insn_max_num (const char *args, int from_tty, struct cmd_list_element *c)
 
static void set_record_full_command (const char *args, int from_tty)
 
static void show_record_full_command (const char *args, int from_tty)
 
void _initialize_record_full (void)
 

Variables

int record_full_memory_query = 0
 
static gdb_byterecord_full_core_regbuf = NULL
 
static struct target_sectionrecord_full_core_start
 
static struct target_sectionrecord_full_core_end
 
static struct record_full_core_buf_entryrecord_full_core_buf_list = NULL
 
static struct record_full_entry record_full_first
 
static struct record_full_entryrecord_full_list = &record_full_first
 
static struct record_full_entryrecord_full_arch_list_head = NULL
 
static struct record_full_entryrecord_full_arch_list_tail = NULL
 
static int record_full_stop_at_limit = 1
 
static unsigned int record_full_insn_max_num = DEFAULT_RECORD_FULL_INSN_MAX_NUM
 
static unsigned int record_full_insn_num = 0
 
static ULONGEST record_full_insn_count
 
static struct target_ops record_full_ops
 
static struct target_ops record_full_core_ops
 
static struct cmd_list_elementset_record_full_cmdlist
 
static struct cmd_list_elementshow_record_full_cmdlist
 
static struct cmd_list_elementrecord_full_cmdlist
 
static int record_full_gdb_operation_disable = 0
 
static enum target_stop_reason record_full_stop_reason = TARGET_STOPPED_BY_NO_REASON
 
static struct async_event_handlerrecord_full_async_inferior_event_token
 
static int record_full_resume_step = 0
 
static int record_full_resumed = 0
 
static enum exec_direction_kind record_full_execution_dir = EXEC_FORWARD
 
static int record_full_get_sig = 0
 

Macro Definition Documentation

◆ DEFAULT_RECORD_FULL_INSN_MAX_NUM

#define DEFAULT_RECORD_FULL_INSN_MAX_NUM   200000

Definition at line 63 of file record-full.c.

◆ RECORD_FULL_FILE_MAGIC

#define RECORD_FULL_FILE_MAGIC   netorder32(0x20091016)

Definition at line 68 of file record-full.c.

Referenced by record_full_restore(), and record_full_save().

◆ RECORD_FULL_IS_REPLAY

#define RECORD_FULL_IS_REPLAY   (record_full_list->next || execution_direction == EXEC_REVERSE)

Typedef Documentation

◆ record_full_breakpoint_p

Definition at line 1579 of file record-full.c.

Enumeration Type Documentation

◆ record_full_type

Enumerator
record_full_end 
record_full_reg 
record_full_mem 

Definition at line 112 of file record-full.c.

Function Documentation

◆ _initialize_record_full()

void _initialize_record_full ( void  )

◆ bfdcore_read()

static void bfdcore_read ( bfd *  obfd,
asection *  osec,
void *  buf,
int  len,
int *  offset 
)
inlinestatic

Definition at line 2287 of file record-full.c.

References _, record_full_core_buf_entry::buf, error(), and offset.

Referenced by record_full_restore().

◆ bfdcore_write()

static void bfdcore_write ( bfd *  obfd,
asection *  osec,
void *  buf,
int  len,
int *  offset 
)
inlinestatic

Definition at line 2496 of file record-full.c.

References _, error(), and offset.

Referenced by record_full_save().

◆ cmd_record_full_restore()

static void cmd_record_full_restore ( const char *  args,
int  from_tty 
)
static

Definition at line 2512 of file record-full.c.

References core_file_command(), and record_full_open().

Referenced by _initialize_record_full().

◆ cmd_record_full_start()

static void cmd_record_full_start ( const char *  args,
int  from_tty 
)
static

Definition at line 2755 of file record-full.c.

References execute_command().

Referenced by _initialize_record_full().

◆ DEF_VEC_P()

DEF_VEC_P ( record_full_breakpoint_p  )

◆ init_record_full_core_ops()

static void init_record_full_core_ops ( void  )
static

Definition at line 2190 of file record-full.c.

References OPS_MAGIC, record_full_async(), record_full_can_execute_reverse(), record_full_close(), record_full_core_fetch_registers(), record_full_core_has_execution(), record_full_core_insert_breakpoint(), record_full_core_kill(), record_full_core_ops, record_full_core_prepare_to_store(), record_full_core_remove_breakpoint(), record_full_core_resume(), record_full_core_store_registers(), record_full_core_xfer_partial(), record_full_delete(), record_full_execution_direction(), record_full_get_bookmark(), record_full_goto(), record_full_goto_begin(), record_full_goto_bookmark(), record_full_goto_end(), record_full_info(), record_full_is_replaying(), record_full_open(), record_full_record_method(), record_full_stopped_by_hw_breakpoint(), record_full_stopped_by_sw_breakpoint(), record_full_stopped_by_watchpoint(), record_full_stopped_data_address(), record_full_supports_stopped_by_hw_breakpoint(), record_full_supports_stopped_by_sw_breakpoint(), record_full_wait(), record_full_will_replay(), record_stratum, target_ops::to_async, target_ops::to_can_execute_reverse, target_ops::to_close, target_ops::to_delete_record, target_ops::to_doc, target_ops::to_execution_direction, target_ops::to_fetch_registers, target_ops::to_get_bookmark, target_ops::to_goto_bookmark, target_ops::to_goto_record, target_ops::to_goto_record_begin, target_ops::to_goto_record_end, target_ops::to_has_execution, target_ops::to_info_record, target_ops::to_insert_breakpoint, target_ops::to_kill, target_ops::to_longname, target_ops::to_magic, target_ops::to_open, target_ops::to_prepare_to_store, target_ops::to_record_is_replaying, target_ops::to_record_method, target_ops::to_record_will_replay, target_ops::to_remove_breakpoint, target_ops::to_resume, target_ops::to_shortname, target_ops::to_stopped_by_hw_breakpoint, target_ops::to_stopped_by_sw_breakpoint, target_ops::to_stopped_by_watchpoint, target_ops::to_stopped_data_address, target_ops::to_store_registers, target_ops::to_stratum, target_ops::to_supports_stopped_by_hw_breakpoint, target_ops::to_supports_stopped_by_sw_breakpoint, target_ops::to_wait, and target_ops::to_xfer_partial.

Referenced by _initialize_record_full().

◆ init_record_full_ops()

static void init_record_full_ops ( void  )
static

Definition at line 1944 of file record-full.c.

References OPS_MAGIC, record_detach(), record_disconnect(), record_full_async(), record_full_can_execute_reverse(), record_full_close(), record_full_commit_resume(), record_full_delete(), record_full_execution_direction(), record_full_get_bookmark(), record_full_goto(), record_full_goto_begin(), record_full_goto_bookmark(), record_full_goto_end(), record_full_info(), record_full_insert_breakpoint(), record_full_is_replaying(), record_full_open(), record_full_ops, record_full_record_method(), record_full_remove_breakpoint(), record_full_resume(), record_full_save(), record_full_stop_replaying(), record_full_stopped_by_hw_breakpoint(), record_full_stopped_by_sw_breakpoint(), record_full_stopped_by_watchpoint(), record_full_stopped_data_address(), record_full_store_registers(), record_full_supports_stopped_by_hw_breakpoint(), record_full_supports_stopped_by_sw_breakpoint(), record_full_wait(), record_full_will_replay(), record_full_xfer_partial(), record_kill(), record_mourn_inferior(), record_stratum, target_ops::to_async, target_ops::to_can_execute_reverse, target_ops::to_close, target_ops::to_commit_resume, target_ops::to_delete_record, target_ops::to_detach, target_ops::to_disconnect, target_ops::to_doc, target_ops::to_execution_direction, target_ops::to_get_bookmark, target_ops::to_goto_bookmark, target_ops::to_goto_record, target_ops::to_goto_record_begin, target_ops::to_goto_record_end, target_ops::to_info_record, target_ops::to_insert_breakpoint, target_ops::to_kill, target_ops::to_longname, target_ops::to_magic, target_ops::to_mourn_inferior, target_ops::to_open, target_ops::to_record_is_replaying, target_ops::to_record_method, target_ops::to_record_stop_replaying, target_ops::to_record_will_replay, target_ops::to_remove_breakpoint, target_ops::to_resume, target_ops::to_save_record, target_ops::to_shortname, target_ops::to_stopped_by_hw_breakpoint, target_ops::to_stopped_by_sw_breakpoint, target_ops::to_stopped_by_watchpoint, target_ops::to_stopped_data_address, target_ops::to_store_registers, target_ops::to_stratum, target_ops::to_supports_stopped_by_hw_breakpoint, target_ops::to_supports_stopped_by_sw_breakpoint, target_ops::to_wait, and target_ops::to_xfer_partial.

Referenced by _initialize_record_full().

◆ netorder32()

static uint32_t netorder32 ( uint32_t  input)
inlinestatic

Definition at line 2310 of file record-full.c.

References store_unsigned_integer().

Referenced by record_full_restore(), and record_full_save().

◆ netorder64()

static uint64_t netorder64 ( uint64_t  input)
inlinestatic

Definition at line 2300 of file record-full.c.

References store_unsigned_integer().

Referenced by record_full_restore(), and record_full_save().

◆ record_full_arch_list_add()

static void record_full_arch_list_add ( struct record_full_entry rec)
static

◆ record_full_arch_list_add_end()

int record_full_arch_list_add_end ( void  )

◆ record_full_arch_list_add_mem()

int record_full_arch_list_add_mem ( CORE_ADDR  addr,
int  len 
)

◆ record_full_arch_list_add_reg()

int record_full_arch_list_add_reg ( struct regcache regcache,
int  regnum 
)

◆ record_full_arch_list_cleanups()

static void record_full_arch_list_cleanups ( void *  ignore)
static

◆ record_full_async()

static void record_full_async ( struct target_ops ops,
int  enable 
)
static

◆ record_full_async_inferior_event_handler()

static void record_full_async_inferior_event_handler ( gdb_client_data  data)
static

Definition at line 767 of file record-full.c.

References INF_REG_EVENT, and inferior_event_handler().

Referenced by record_full_open().

◆ record_full_can_execute_reverse()

static int record_full_can_execute_reverse ( struct target_ops self)
static

Definition at line 1717 of file record-full.c.

Referenced by init_record_full_core_ops(), and init_record_full_ops().

◆ record_full_check_insn_num()

static void record_full_check_insn_num ( void  )
static

◆ record_full_close()

static void record_full_close ( struct target_ops self)
static

◆ record_full_commit_resume()

static void record_full_commit_resume ( struct target_ops ops)
static

◆ record_full_core_fetch_registers()

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

◆ record_full_core_has_execution()

static int record_full_core_has_execution ( struct target_ops ops,
ptid_t  the_ptid 
)
static

Definition at line 2184 of file record-full.c.

Referenced by init_record_full_core_ops().

◆ record_full_core_insert_breakpoint()

static int record_full_core_insert_breakpoint ( struct target_ops ops,
struct gdbarch gdbarch,
struct bp_target_info bp_tgt 
)
static

Definition at line 2163 of file record-full.c.

Referenced by init_record_full_core_ops().

◆ record_full_core_kill()

static void record_full_core_kill ( struct target_ops ops)
static

◆ record_full_core_open_1()

static void record_full_core_open_1 ( const char *  name,
int  from_tty 
)
static

◆ record_full_core_prepare_to_store()

static void record_full_core_prepare_to_store ( struct target_ops self,
struct regcache regcache 
)
static

Definition at line 2044 of file record-full.c.

Referenced by init_record_full_core_ops().

◆ record_full_core_remove_breakpoint()

static int record_full_core_remove_breakpoint ( struct target_ops ops,
struct gdbarch gdbarch,
struct bp_target_info bp_tgt,
enum remove_bp_reason  reason 
)
static

Definition at line 2173 of file record-full.c.

Referenced by init_record_full_core_ops().

◆ record_full_core_resume()

static void record_full_core_resume ( struct target_ops ops,
ptid_t  ptid,
int  step,
enum gdb_signal  signal 
)
static

◆ record_full_core_store_registers()

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

◆ record_full_core_xfer_partial()

static enum target_xfer_status record_full_core_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

◆ record_full_delete()

static void record_full_delete ( struct target_ops self)
static

◆ record_full_end_alloc()

static struct record_full_entry* record_full_end_alloc ( void  )
inlinestatic

Definition at line 301 of file record-full.c.

References record_full_end, record_full_entry::type, and XCNEW.

Referenced by record_full_arch_list_add_end(), and record_full_restore().

◆ record_full_end_release()

static void record_full_end_release ( struct record_full_entry rec)
inlinestatic

Definition at line 314 of file record-full.c.

References xfree().

Referenced by record_full_entry_release().

◆ record_full_entry_release()

static enum record_full_type record_full_entry_release ( struct record_full_entry rec)
inlinestatic

◆ record_full_exec_insn()

static void record_full_exec_insn ( struct regcache regcache,
struct gdbarch gdbarch,
struct record_full_entry entry 
)
inlinestatic

◆ record_full_execution_direction()

static enum exec_direction_kind record_full_execution_direction ( struct target_ops self)
static

Definition at line 1778 of file record-full.c.

References record_full_execution_dir.

Referenced by init_record_full_core_ops(), and init_record_full_ops().

◆ record_full_gdb_operation_disable_set()

scoped_restore_tmpl<int> record_full_gdb_operation_disable_set ( void  )

◆ record_full_get_bookmark()

static gdb_byte* record_full_get_bookmark ( struct target_ops self,
const char *  args,
int  from_tty 
)
static

◆ record_full_get_loc()

static gdb_byte* record_full_get_loc ( struct record_full_entry rec)
inlinestatic

◆ record_full_goto()

static void record_full_goto ( struct target_ops self,
ULONGEST  target_insn 
)
static

◆ record_full_goto_begin()

static void record_full_goto_begin ( struct target_ops self)
static

◆ record_full_goto_bookmark()

static void record_full_goto_bookmark ( struct target_ops self,
const gdb_byte raw_bookmark,
int  from_tty 
)
static

◆ record_full_goto_end()

static void record_full_goto_end ( struct target_ops self)
static

◆ record_full_goto_entry()

static void record_full_goto_entry ( struct record_full_entry p)
static

◆ record_full_goto_insn()

static void record_full_goto_insn ( struct record_full_entry entry,
enum exec_direction_kind  dir 
)
static

◆ record_full_info()

static void record_full_info ( struct target_ops self)
static

◆ record_full_init_record_breakpoints()

static void record_full_init_record_breakpoints ( void  )
static

Definition at line 1608 of file record-full.c.

References iterate_over_bp_locations(), and VEC_free.

Referenced by record_full_open().

◆ record_full_insert_breakpoint()

static int record_full_insert_breakpoint ( struct target_ops ops,
struct gdbarch gdbarch,
struct bp_target_info bp_tgt 
)
static

◆ record_full_is_replaying()

static int record_full_is_replaying ( struct target_ops self,
ptid_t  ptid 
)
static

Definition at line 1846 of file record-full.c.

References RECORD_FULL_IS_REPLAY.

Referenced by init_record_full_core_ops(), and init_record_full_ops().

◆ record_full_is_used()

int record_full_is_used ( void  )

◆ record_full_list_release()

static void record_full_list_release ( struct record_full_entry rec)
static

◆ record_full_list_release_first()

static void record_full_list_release_first ( void  )
static

◆ record_full_list_release_following()

static void record_full_list_release_following ( struct record_full_entry rec)
static

◆ record_full_mem_alloc()

static struct record_full_entry* record_full_mem_alloc ( CORE_ADDR  addr,
int  len 
)
inlinestatic

◆ record_full_mem_release()

static void record_full_mem_release ( struct record_full_entry rec)
inlinestatic

◆ record_full_message()

static void record_full_message ( struct regcache regcache,
enum gdb_signal  signal 
)
static

◆ record_full_message_wrapper_safe()

static bool record_full_message_wrapper_safe ( struct regcache regcache,
enum gdb_signal  signal 
)
static

◆ record_full_open()

static void record_full_open ( const char *  name,
int  from_tty 
)
static

◆ record_full_open_1()

static void record_full_open_1 ( const char *  name,
int  from_tty 
)
static

◆ record_full_record_method()

enum record_method record_full_record_method ( struct target_ops self,
ptid_t  ptid 
)

Definition at line 1786 of file record-full.c.

References RECORD_METHOD_FULL.

Referenced by init_record_full_core_ops(), and init_record_full_ops().

◆ record_full_reg_alloc()

static struct record_full_entry* record_full_reg_alloc ( struct regcache regcache,
int  regnum 
)
inlinestatic

◆ record_full_reg_release()

static void record_full_reg_release ( struct record_full_entry rec)
inlinestatic

◆ record_full_registers_change()

static void record_full_registers_change ( struct regcache regcache,
int  regnum 
)
static

◆ record_full_remove_breakpoint()

static int record_full_remove_breakpoint ( struct target_ops ops,
struct gdbarch gdbarch,
struct bp_target_info bp_tgt,
enum remove_bp_reason  reason 
)
static

◆ record_full_restore()

static void record_full_restore ( void  )
static

◆ record_full_resume()

static void record_full_resume ( struct target_ops ops,
ptid_t  ptid,
int  step,
enum gdb_signal  signal 
)
static

◆ record_full_save()

static void record_full_save ( struct target_ops self,
const char *  recfilename 
)
static

◆ record_full_sig_handler()

static void record_full_sig_handler ( int  signo)
static

◆ record_full_stop_replaying()

static void record_full_stop_replaying ( struct target_ops self)
static

Definition at line 1938 of file record-full.c.

References record_full_goto_end().

Referenced by init_record_full_ops().

◆ record_full_stopped_by_hw_breakpoint()

static int record_full_stopped_by_hw_breakpoint ( struct target_ops ops)
static

◆ record_full_stopped_by_sw_breakpoint()

static int record_full_stopped_by_sw_breakpoint ( struct target_ops ops)
static

◆ record_full_stopped_by_watchpoint()

static int record_full_stopped_by_watchpoint ( struct target_ops ops)
static

◆ record_full_stopped_data_address()

static int record_full_stopped_data_address ( struct target_ops ops,
CORE_ADDR addr_p 
)
static

◆ record_full_store_registers()

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

◆ record_full_supports_stopped_by_hw_breakpoint()

static int record_full_supports_stopped_by_hw_breakpoint ( struct target_ops ops)
static

Definition at line 1385 of file record-full.c.

Referenced by init_record_full_core_ops(), and init_record_full_ops().

◆ record_full_supports_stopped_by_sw_breakpoint()

static int record_full_supports_stopped_by_sw_breakpoint ( struct target_ops ops)
static

Definition at line 1368 of file record-full.c.

Referenced by init_record_full_core_ops(), and init_record_full_ops().

◆ record_full_wait()

static ptid_t record_full_wait ( struct target_ops ops,
ptid_t  ptid,
struct target_waitstatus status,
int  options 
)
static

◆ record_full_wait_1()

static ptid_t record_full_wait_1 ( struct target_ops ops,
ptid_t  ptid,
struct target_waitstatus status,
int  options 
)
static

Definition at line 1030 of file record-full.c.

References ALL_NON_EXITED_THREADS, regcache::arch(), regcache::aspace(), target_ops::beneath, delete_single_step_breakpoints(), discard_cleanups(), record_full_entry::end, EXEC_FORWARD, EXEC_REVERSE, execution_direction, fprintf_unfiltered(), gdb_assert, gdb_stdlog, gdbarch_software_single_step_p(), get_current_regcache(), handle_sigint(), host_address_to_string, inferior_ptid, insert_single_step_breakpoints(), make_cleanup(), minus_one_ptid, record_full_entry::next, target_terminal::ours(), paddress(), record_full_entry::prev, thread_info::ptid, record_check_stopped_by_breakpoint(), record_debug, record_full_core_ops, record_full_end, record_full_exec_insn(), record_full_execution_dir, record_full_first, record_full_gdb_operation_disable_set(), record_full_get_sig, RECORD_FULL_IS_REPLAY, record_full_list, record_full_message_wrapper_safe(), record_full_resume_step, record_full_resumed, record_full_sig_handler(), record_full_stop_reason, record_full_wait_cleanups(), regcache::regcache(), regcache_read_pc(), registers_changed(), reinit_frame_cache(), set_executing(), record_full_end_entry::sigval, status, TARGET_STOPPED_BY_NO_REASON, TARGET_STOPPED_BY_WATCHPOINT, target_stopped_by_watchpoint, target_thread_architecture, TARGET_WAITKIND_IGNORE, TARGET_WAITKIND_NO_HISTORY, TARGET_WAITKIND_STOPPED, TARGET_WNOHANG, target_ops::to_commit_resume, target_ops::to_resume, target_ops::to_wait, record_full_entry::type, and record_full_entry::u.

Referenced by record_full_wait().

◆ record_full_wait_cleanups()

static void record_full_wait_cleanups ( void *  ignore)
static

◆ record_full_will_replay()

static int record_full_will_replay ( struct target_ops self,
ptid_t  ptid,
int  dir 
)
static

Definition at line 1854 of file record-full.c.

References EXEC_REVERSE, and RECORD_FULL_IS_REPLAY.

Referenced by init_record_full_core_ops(), and init_record_full_ops().

◆ record_full_xfer_partial()

static enum target_xfer_status record_full_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

◆ set_record_full_command()

static void set_record_full_command ( const char *  args,
int  from_tty 
)
static

◆ set_record_full_insn_max_num()

static void set_record_full_insn_max_num ( const char *  args,
int  from_tty,
struct cmd_list_element c 
)
static

◆ show_record_full_command()

static void show_record_full_command ( const char *  args,
int  from_tty 
)
static

Definition at line 2789 of file record-full.c.

References cmd_show_list(), and show_record_full_cmdlist.

Referenced by _initialize_record_full().

◆ VEC()

Definition at line 1584 of file record-full.c.

References bp, bp_loc_software_breakpoint, loc, VEC_safe_push, and XNEW.

Variable Documentation

◆ record_full_arch_list_head

struct record_full_entry* record_full_arch_list_head = NULL
static

◆ record_full_arch_list_tail

struct record_full_entry* record_full_arch_list_tail = NULL
static

◆ record_full_async_inferior_event_token

struct async_event_handler* record_full_async_inferior_event_token
static

Definition at line 764 of file record-full.c.

Referenced by record_full_async(), record_full_close(), and record_full_open().

◆ record_full_cmdlist

struct cmd_list_element* record_full_cmdlist
static

Definition at line 231 of file record-full.c.

Referenced by _initialize_record_full().

◆ record_full_core_buf_list

struct record_full_core_buf_entry* record_full_core_buf_list = NULL
static

Definition at line 174 of file record-full.c.

Referenced by record_full_close(), and record_full_core_xfer_partial().

◆ record_full_core_end

struct target_section* record_full_core_end
static

Definition at line 173 of file record-full.c.

Referenced by record_full_core_open_1(), and record_full_core_xfer_partial().

◆ record_full_core_ops

struct target_ops record_full_core_ops
static

◆ record_full_core_regbuf

gdb_byte* record_full_core_regbuf = NULL
static

◆ record_full_core_start

struct target_section* record_full_core_start
static

Definition at line 172 of file record-full.c.

Referenced by record_full_core_open_1(), and record_full_core_xfer_partial().

◆ record_full_execution_dir

enum exec_direction_kind record_full_execution_dir = EXEC_FORWARD
static

◆ record_full_first

struct record_full_entry record_full_first
static

◆ record_full_gdb_operation_disable

int record_full_gdb_operation_disable = 0
static

◆ record_full_get_sig

int record_full_get_sig = 0
static

Definition at line 986 of file record-full.c.

Referenced by record_full_sig_handler(), and record_full_wait_1().

◆ record_full_insn_count

ULONGEST record_full_insn_count
static

◆ record_full_insn_max_num

unsigned int record_full_insn_max_num = DEFAULT_RECORD_FULL_INSN_MAX_NUM
static

◆ record_full_insn_num

unsigned int record_full_insn_num = 0
static

◆ record_full_list

struct record_full_entry* record_full_list = &record_full_first
static

◆ record_full_memory_query

int record_full_memory_query = 0

◆ record_full_ops

struct target_ops record_full_ops
static

◆ record_full_resume_step

int record_full_resume_step = 0
static

◆ record_full_resumed

int record_full_resumed = 0
static

◆ record_full_stop_at_limit

int record_full_stop_at_limit = 1
static

Definition at line 199 of file record-full.c.

Referenced by _initialize_record_full(), and record_full_check_insn_num().

◆ record_full_stop_reason

enum target_stop_reason record_full_stop_reason = TARGET_STOPPED_BY_NO_REASON
static

◆ set_record_full_cmdlist

struct cmd_list_element* set_record_full_cmdlist
static

Definition at line 227 of file record-full.c.

Referenced by _initialize_record_full(), and set_record_full_command().

◆ show_record_full_cmdlist

struct cmd_list_element* show_record_full_cmdlist
static

Definition at line 228 of file record-full.c.

Referenced by _initialize_record_full(), and show_record_full_command().