diff options
Diffstat (limited to 'gdb/record-full.c')
-rw-r--r-- | gdb/record-full.c | 194 |
1 files changed, 97 insertions, 97 deletions
diff --git a/gdb/record-full.c b/gdb/record-full.c index b5447e5..3b5e6fe 100644 --- a/gdb/record-full.c +++ b/gdb/record-full.c @@ -183,7 +183,7 @@ static struct record_full_core_buf_entry *record_full_core_buf_list = NULL; record_full_list serves two functions: 1) In record mode, it anchors the end of the list. 2) In replay mode, it traverses the list and points to - the next instruction that must be emulated. + the next instruction that must be emulated. record_full_arch_list_head and record_full_arch_list_tail are used to manage a separate list, which is used to build up the change @@ -824,52 +824,52 @@ record_full_exec_insn (struct regcache *regcache, { gdb::byte_vector reg (entry->u.reg.len); - if (record_debug > 1) - fprintf_unfiltered (gdb_stdlog, - "Process record: record_full_reg %s to " - "inferior num = %d.\n", - host_address_to_string (entry), - entry->u.reg.num); + if (record_debug > 1) + fprintf_unfiltered (gdb_stdlog, + "Process record: record_full_reg %s to " + "inferior num = %d.\n", + host_address_to_string (entry), + entry->u.reg.num); - regcache->cooked_read (entry->u.reg.num, reg.data ()); - regcache->cooked_write (entry->u.reg.num, record_full_get_loc (entry)); - memcpy (record_full_get_loc (entry), reg.data (), entry->u.reg.len); + regcache->cooked_read (entry->u.reg.num, reg.data ()); + regcache->cooked_write (entry->u.reg.num, record_full_get_loc (entry)); + memcpy (record_full_get_loc (entry), reg.data (), entry->u.reg.len); } break; case record_full_mem: /* mem */ { /* Nothing to do if the entry is flagged not_accessible. */ - if (!entry->u.mem.mem_entry_not_accessible) - { + if (!entry->u.mem.mem_entry_not_accessible) + { gdb::byte_vector mem (entry->u.mem.len); - if (record_debug > 1) - fprintf_unfiltered (gdb_stdlog, - "Process record: record_full_mem %s to " - "inferior addr = %s len = %d.\n", - host_address_to_string (entry), - paddress (gdbarch, entry->u.mem.addr), - entry->u.mem.len); + if (record_debug > 1) + fprintf_unfiltered (gdb_stdlog, + "Process record: record_full_mem %s to " + "inferior addr = %s len = %d.\n", + host_address_to_string (entry), + paddress (gdbarch, entry->u.mem.addr), + entry->u.mem.len); - if (record_read_memory (gdbarch, + if (record_read_memory (gdbarch, entry->u.mem.addr, mem.data (), entry->u.mem.len)) entry->u.mem.mem_entry_not_accessible = 1; - else - { - if (target_write_memory (entry->u.mem.addr, + else + { + if (target_write_memory (entry->u.mem.addr, record_full_get_loc (entry), entry->u.mem.len)) - { - entry->u.mem.mem_entry_not_accessible = 1; - if (record_debug) - warning (_("Process record: error writing memory at " + { + entry->u.mem.mem_entry_not_accessible = 1; + if (record_debug) + warning (_("Process record: error writing memory at " "addr = %s len = %d."), - paddress (gdbarch, entry->u.mem.addr), - entry->u.mem.len); - } - else + paddress (gdbarch, entry->u.mem.addr), + entry->u.mem.len); + } + else { memcpy (record_full_get_loc (entry), mem.data (), entry->u.mem.len); @@ -887,8 +887,8 @@ record_full_exec_insn (struct regcache *regcache, entry->u.mem.addr, entry->u.mem.len)) record_full_stop_reason = TARGET_STOPPED_BY_WATCHPOINT; } - } - } + } + } } break; } @@ -1071,25 +1071,25 @@ record_full_target::resume (ptid_t ptid, int step, enum gdb_signal signal) record_full_message (get_current_regcache (), signal); if (!step) - { - /* This is not hard single step. */ - if (!gdbarch_software_single_step_p (gdbarch)) - { - /* This is a normal continue. */ - step = 1; - } - else - { - /* This arch supports soft single step. */ - if (thread_has_single_step_breakpoints_set (inferior_thread ())) - { - /* This is a soft single step. */ - record_full_resume_step = 1; - } - else + { + /* This is not hard single step. */ + if (!gdbarch_software_single_step_p (gdbarch)) + { + /* This is a normal continue. */ + step = 1; + } + else + { + /* This arch supports soft single step. */ + if (thread_has_single_step_breakpoints_set (inferior_thread ())) + { + /* This is a soft single step. */ + record_full_resume_step = 1; + } + else step = !insert_single_step_breakpoints (gdbarch); - } - } + } + } /* Make sure the target beneath reports all signals. */ target_pass_signals ({}); @@ -1202,7 +1202,7 @@ record_full_wait_1 (struct target_ops *ops, } for (thread_info *tp : all_non_exited_threads ()) - delete_single_step_breakpoints (tp); + delete_single_step_breakpoints (tp); if (record_full_resume_step) return ret; @@ -1239,20 +1239,20 @@ record_full_wait_1 (struct target_ops *ops, else { /* This is a single-step trap. Record the - insn and issue another step. - FIXME: this part can be a random SIGTRAP too. - But GDB cannot handle it. */ - int step = 1; + insn and issue another step. + FIXME: this part can be a random SIGTRAP too. + But GDB cannot handle it. */ + int step = 1; if (!record_full_message_wrapper_safe (regcache, GDB_SIGNAL_0)) { - status->kind = TARGET_WAITKIND_STOPPED; - status->value.sig = GDB_SIGNAL_0; - break; + status->kind = TARGET_WAITKIND_STOPPED; + status->value.sig = GDB_SIGNAL_0; + break; } - if (gdbarch_software_single_step_p (gdbarch)) + if (gdbarch_software_single_step_p (gdbarch)) { process_stratum_target *proc_target = current_inferior ()->process_target (); @@ -1602,7 +1602,7 @@ record_full_target::store_registers (struct regcache *regcache, int regno) if (!n) { /* Invalidate the value of regcache that was set in function - "regcache_raw_write". */ + "regcache_raw_write". */ if (regno < 0) { int i; @@ -1646,8 +1646,8 @@ record_full_target::xfer_partial (enum target_object object, { /* Let user choose if he wants to write memory or not. */ if (!query (_("Because GDB is in replay mode, writing to memory " - "will make the execution log unusable from this " - "point onward. Write memory at address %s?"), + "will make the execution log unusable from this " + "point onward. Write memory at address %s?"), paddress (target_gdbarch (), offset))) error (_("Process record canceled the operation.")); @@ -2177,7 +2177,7 @@ record_full_core_target::xfer_partial (enum target_object object, entry = XNEW (struct record_full_core_buf_entry); entry->p = &p; if (!bfd_malloc_and_get_section - (p.the_bfd_section->owner, + (p.the_bfd_section->owner, p.the_bfd_section, &entry->buf)) { @@ -2279,7 +2279,7 @@ record_full_core_target::has_execution (inferior *inf) 1 byte: record type (record_full_reg, see enum record_full_type). 4 bytes: register id (network byte order). n bytes: register value (n == actual register size). - (eg. 4 bytes for x86 general registers). + (eg. 4 bytes for x86 general registers). record_full_mem: 1 byte: record type (record_full_mem, see enum record_full_type). 4 bytes: memory length (network byte order). @@ -2492,7 +2492,7 @@ record_full_restore (void) { record_full_insn_max_num = record_full_insn_num; warning (_("Auto increase record/replay buffer limit to %u."), - record_full_insn_max_num); + record_full_insn_max_num); } /* Succeeded. */ @@ -2568,12 +2568,12 @@ record_full_base_target::save_record (const char *recfilename) { /* Check for beginning and end of log. */ if (record_full_list == &record_full_first) - break; + break; record_full_exec_insn (regcache, gdbarch, record_full_list); if (record_full_list->prev) - record_full_list = record_full_list->prev; + record_full_list = record_full_list->prev; } /* Compute the size needed for the extra bfd section. */ @@ -2595,12 +2595,12 @@ record_full_base_target::save_record (const char *recfilename) /* Make the new bfd section. */ osec = bfd_make_section_anyway_with_flags (obfd.get (), "precord", - SEC_HAS_CONTENTS - | SEC_READONLY); + SEC_HAS_CONTENTS + | SEC_READONLY); if (osec == NULL) error (_("Failed to create 'precord' section for corefile %s: %s"), recfilename, - bfd_errmsg (bfd_get_error ())); + bfd_errmsg (bfd_get_error ())); bfd_set_section_size (osec, save_size); bfd_set_section_vma (osec, 0); bfd_set_section_alignment (osec, 0); @@ -2625,17 +2625,17 @@ record_full_base_target::save_record (const char *recfilename) { /* Save entry. */ if (record_full_list != &record_full_first) - { + { uint8_t type; uint32_t regnum, len, signal, count; - uint64_t addr; + uint64_t addr; type = record_full_list->type; - bfdcore_write (obfd.get (), osec, &type, sizeof (type), &bfd_offset); + bfdcore_write (obfd.get (), osec, &type, sizeof (type), &bfd_offset); - switch (record_full_list->type) - { - case record_full_reg: /* reg */ + switch (record_full_list->type) + { + case record_full_reg: /* reg */ if (record_debug) fprintf_unfiltered (gdb_stdlog, " Writing register %d (1 " @@ -2644,18 +2644,18 @@ record_full_base_target::save_record (const char *recfilename) (unsigned long) sizeof (regnum), record_full_list->u.reg.len); - /* Write regnum. */ - regnum = netorder32 (record_full_list->u.reg.num); - bfdcore_write (obfd.get (), osec, ®num, + /* Write regnum. */ + regnum = netorder32 (record_full_list->u.reg.num); + bfdcore_write (obfd.get (), osec, ®num, sizeof (regnum), &bfd_offset); - /* Write regval. */ - bfdcore_write (obfd.get (), osec, + /* Write regval. */ + bfdcore_write (obfd.get (), osec, record_full_get_loc (record_full_list), record_full_list->u.reg.len, &bfd_offset); - break; + break; - case record_full_mem: /* mem */ + case record_full_mem: /* mem */ if (record_debug) fprintf_unfiltered (gdb_stdlog, " Writing memory %s (1 plus " @@ -2680,9 +2680,9 @@ record_full_base_target::save_record (const char *recfilename) bfdcore_write (obfd.get (), osec, record_full_get_loc (record_full_list), record_full_list->u.mem.len, &bfd_offset); - break; + break; - case record_full_end: + case record_full_end: if (record_debug) fprintf_unfiltered (gdb_stdlog, " Writing record_full_end (1 + " @@ -2698,17 +2698,17 @@ record_full_base_target::save_record (const char *recfilename) count = netorder32 (record_full_list->u.end.insn_num); bfdcore_write (obfd.get (), osec, &count, sizeof (count), &bfd_offset); - break; - } - } + break; + } + } /* Execute entry. */ record_full_exec_insn (regcache, gdbarch, record_full_list); if (record_full_list->next) - record_full_list = record_full_list->next; + record_full_list = record_full_list->next; else - break; + break; } /* Reverse execute to cur_record_full_list. */ @@ -2716,12 +2716,12 @@ record_full_base_target::save_record (const char *recfilename) { /* Check for beginning and end of log. */ if (record_full_list == cur_record_full_list) - break; + break; record_full_exec_insn (regcache, gdbarch, record_full_list); if (record_full_list->prev) - record_full_list = record_full_list->prev; + record_full_list = record_full_list->prev; } unlink_file.keep (); @@ -2777,8 +2777,8 @@ set_record_full_insn_max_num (const char *args, int from_tty, /* Count down record_full_insn_num while releasing records from list. */ while (record_full_insn_num > record_full_insn_max_num) { - record_full_list_release_first (); - record_full_insn_num--; + record_full_list_release_first (); + record_full_insn_num--; } } } @@ -2864,9 +2864,9 @@ limit. Default is 200000."), add_setshow_boolean_cmd ("memory-query", no_class, &record_full_memory_query, _("\ Set whether query if PREC cannot record memory change of next instruction."), - _("\ + _("\ Show whether query if PREC cannot record memory change of next instruction."), - _("\ + _("\ Default is OFF.\n\ When ON, query if PREC cannot record memory change of next instruction."), NULL, NULL, |