Age | Commit message (Collapse) | Author | Files | Lines |
|
gdb/ChangeLog:
Update year range in copyright notice of all files.
|
|
This change:
commit b775012e845380ed4c7421a1b87caf7bfae39f5f
Author: Luis Machado <luisgpm@br.ibm.com>
Date: Fri Feb 24 15:10:59 2012 +0000
2012-02-24 Luis Machado <lgustavo@codesourcery.com>
* remote.c (remote_supports_cond_breakpoints): New forward
declaration.
[...]
changed the way breakpoints are inserted and removed such that
`insert_bp_location' can now be called with the breakpoint being handled
already in place, while previously the call was only ever made for
breakpoints that have not been put in place. This in turn caused an
issue for software breakpoints and targets for which a breakpoint's
`placed_address' may not be the same as the original requested address.
The issue is `insert_bp_location' overwrites the previously adjusted
value in `placed_address' with the original address, that is only
replaced back with the correct adjusted address later on when
`gdbarch_breakpoint_from_pc' is called. Meanwhile there's a window
where the value in `placed_address' does not correspond to data stored
in `shadow_contents', leading to incorrect instruction bytes being
supplied when `one_breakpoint_xfer_memory' is called to supply the
instruction overlaid by the breakpoint.
And this is exactly what happens on the MIPS target with software
breakpoints placed in microMIPS code. In this case not only
`placed_address' is not the original address because of the ISA bit, but
`mips_breakpoint_from_pc' has to read the original instruction to
determine which one of the two software breakpoint instruction encodings
to choose as well. The 16-bit encoding is used to replace 16-bit
instructions and similarly the 32-bit one is used with 32-bit
instructions, to satisfy branch delay slot size requirements.
The mismatch between `placed_address' and the address data in
`shadow_contents' has been obtained from leads to the wrong encoding
being used in some cases, which in the case of a 32-bit software
breakpoint instruction replacing a 16-bit instruction causes corruption
to the adjacent following instruction and leads the debug session astray
if execution reaches there e.g. with a jump.
To address this problem I made the change below, that adds a
`reqstd_address' field to `struct bp_target_info' and leaves
`placed_address' unchanged once it has been set. This ensures data in
`shadow_contents' is always consistent with `placed_address'.
This approach also has this good side effect that all the places that
examine the breakpoint's address see a consistent value, either
`reqstd_address' or `placed_address', as required. Currently some
places see either the original or the adjusted address in
`placed_address', depending on whether they have been called before
`gdbarch_remote_breakpoint_from_pc' or afterwards. This is in
particular true for subsequent calls to
`gdbarch_remote_breakpoint_from_pc' itself, e.g. from
`one_breakpoint_xfer_memory'. This is also important for places like
`find_single_step_breakpoint' where a breakpoint's address is compared
to the raw value of $pc.
* breakpoint.h (bp_target_info): Add `reqstd_address' member,
update comments.
* breakpoint.c (one_breakpoint_xfer_memory): Use `reqstd_address'
for the breakpoint's address. Don't preinitialize `placed_size'.
(insert_bp_location): Set `reqstd_address' rather than
`placed_address'.
(bp_target_info_copy_insertion_state): Also copy `placed_address'.
(bkpt_insert_location): Use `reqstd_address' for the breakpoint's
address.
(bkpt_remove_location): Likewise.
(deprecated_insert_raw_breakpoint): Likewise.
(deprecated_remove_raw_breakpoint): Likewise.
(find_single_step_breakpoint): Likewise.
* mem-break.c (default_memory_insert_breakpoint): Use
`reqstd_address' for the breakpoint's address. Don't set
`placed_address' or `placed_size' if breakpoint contents couldn't
have been determined.
* remote.c (remote_insert_breakpoint): Use `reqstd_address' for
the breakpoint's address.
(remote_insert_hw_breakpoint): Likewise. Don't set
`placed_address' or `placed_size' if breakpoint couldn't have been
set.
* aarch64-linux-nat.c (aarch64_linux_insert_hw_breakpoint): Use
`reqstd_address' for the breakpoint's address.
* arm-linux-nat.c (arm_linux_hw_breakpoint_initialize): Likewise.
* ia64-tdep.c (ia64_memory_insert_breakpoint): Likewise.
* m32r-tdep.c (m32r_memory_insert_breakpoint): Likewise.
* microblaze-linux-tdep.c
(microblaze_linux_memory_remove_breakpoint): Likewise.
* monitor.c (monitor_insert_breakpoint): Likewise.
* nto-procfs.c (procfs_insert_breakpoint): Likewise.
(procfs_insert_hw_breakpoint): Likewise.
* ppc-linux-nat.c (ppc_linux_insert_hw_breakpoint): Likewise.
* ppc-linux-tdep.c (ppc_linux_memory_remove_breakpoint): Likewise.
* remote-m32r-sdi.c (m32r_insert_breakpoint): Likewise.
* remote-mips.c (mips_insert_breakpoint): Likewise.
* x86-nat.c (x86_insert_hw_breakpoint): Likewise.
|
|
|
|
While writing the previous patch, I noticed that we're not consistent
with the (C) in the copyright header. The maintainers manual prefers
having it, though also says it's optional. We have over 10x more
files with (C) than without in gdb's code, so I spent a few minutes
grepping and fixing. Funny enough, the testsuite has it backwards.
I'll leave that for another time.
gdb/
2013-02-12 Pedro Alves <palves@redhat.com>
* amd64-darwin-tdep.c: Add (C) after Copyright.
* cli/cli-cmds.h: Ditto.
* cli/cli-decode.c: Ditto.
* cli/cli-decode.h: Ditto.
* cli/cli-dump.c: Ditto.
* cli/cli-dump.h: Ditto.
* cli/cli-interp.c: Ditto.
* cli/cli-logging.c: Ditto.
* cli/cli-script.c: Ditto.
* cli/cli-script.h: Ditto.
* cli/cli-setshow.c: Ditto.
* cli/cli-setshow.h: Ditto.
* cli/cli-utils.c: Ditto.
* cli/cli-utils.h: Ditto.
* config/alpha/nm-osf3.h: Ditto.
* config/djgpp/djconfig.sh: Ditto.
* config/i386/nm-fbsd.h: Ditto.
* config/i386/nm-i386gnu.h: Ditto.
* config/nm-linux.h: Ditto.
* config/nm-nto.h: Ditto.
* config/rs6000/nm-rs6000.h: Ditto.
* config/sparc/nm-sol2.h: Ditto.
* darwin-nat-info.c: Ditto.
* dfp.c: Ditto.
* dfp.h: Ditto.
* gdb-demangle.h: Ditto.
* i386-darwin-nat.c: Ditto.
* i386-darwin-tdep.c: Ditto.
* linux-fork.h: Ditto.
* m32c-tdep.c: Ditto.
* microblaze-linux-tdep.c: Ditto.
* microblaze-rom.c: Ditto.
* microblaze-tdep.c: Ditto.
* microblaze-tdep.h: Ditto.
* mips-linux-tdep.h: Ditto.
* ppc-ravenscar-thread.c: Ditto.
* ppc-ravenscar-thread.h: Ditto.
* prologue-value.c: Ditto.
* prologue-value.h: Ditto.
* ravenscar-thread.c: Ditto.
* ravenscar-thread.h: Ditto.
* sparc-ravenscar-thread.c: Ditto.
* sparc-ravenscar-thread.h: Ditto.
* tilegx-linux-tdep.c: Ditto.
* unwind_stop_reasons.def: Ditto.
* windows-nat.h: Ditto.
* xtensa-linux-tdep.c: Ditto.
* xtensa-xtregs.c: Ditto.
* regformats/regdat.sh: Ditto.
* regformats/regdef.h: Ditto.
gdb/gdbserver/
2013-02-12 Pedro Alves <palves@redhat.com>
* linux-xtensa-low.c: Ditto.
* xtensa-xtregs.c: Ditto.
|
|
Two modifications:
1. The addition of 2013 to the copyright year range for every file;
2. The use of a single year range, instead of potentially multiple
year ranges, as approved by the FSF.
|
|
Fix -Wmissing-prototypes build.
* alpha-tdep.c (alpha_deal_with_atomic_sequence): Make it static.
* amd64-darwin-tdep.c (_initialize_amd64_darwin_tdep): New prototype.
* amd64-windows-tdep.c (_initialize_amd64_windows_tdep): Likewise.
* arm-symbian-tdep.c (arm_symbian_skip_trampoline_code): Make it static.
(_initialize_arm_symbian_tdep): New prototype.
* arm-wince-tdep.c (arm_wince_skip_main_prologue): Make it static.
* i386-darwin-tdep.c (_initialize_i386_darwin_tdep): New prototype.
* i386-linux-tdep.c (i386_linux_displaced_step_copy_insn): Make it
static.
* lm32-tdep.c (_initialize_lm32_tdep): New prototype.
* microblaze-linux-tdep.c (_initialize_microblaze_linux_tdep): New
prototype.
* microblaze-tdep.c (microblaze_debug, microblaze_fetch_instruction)
(microblaze_skip_prologue, microblaze_frame_cache): Make them static.
* mips-linux-tdep.c (mips_linux_regset_from_core_section): Make it
static.
* moxie-tdep.c (moxie_process_record): Likewise.
* remote-mips.c (mips_can_use_watchpoint, mips_insert_watchpoint)
(mips_remove_watchpoint, mips_stopped_by_watchpoint): Make them static.
* rl78-tdep.c (rl78_breakpoint_from_pc): Make it static.
(_initialize_rl78_tdep): New prototype.
* rx-tdep.c (rx_breakpoint_from_pc): Make it static.
(_initialize_rx_tdep): New prototype.
* solib-darwin.c (darwin_in_dynsym_resolve_code): Make it static.
(_initialize_darwin_solib): New prototype.
* solib-spu.c: Include solib-spu.h.
(_initialize_spu_solib): New prototype.
* spu-multiarch.c (_initialize_spu_multiarch): New prototype.
* tic6x-tdep.c (tic6x_analyze_prologue, tic6x_skip_prologue)
(tic6x_breakpoint_from_pc, tic6x_frame_unwind_cache)
(tic6x_software_single_step): Make it static.
(_initialize_tic6x_tdep): New prototype.
|
|
gdb/ChangeLog:
Copyright year update in most files of the GDB Project.
|
|
* ia64-tdep.c (ia64_memory_remove_breakpoint): Use
target_write_raw_memory.
* m32r-tdep.c (m32r_memory_remove_breakpoint): Use
target_write_raw_memory.
* microblaze-linux-tdep.c
(microblaze_linux_memory_remove_breakpoint): Use
target_write_raw_memory.
* ppc-linux-tdep.c (ppc_linux_memory_remove_breakpoint): Use
target_write_raw_memory.
|
|
|
|
instead of printing "Thread" here.
* linux-tdep.c: Include inferior.h.
(linux_core_pid_to_str): New.
(linux_init_abi): New.
* linux-tdep.h (linux_init_abi): Declare.
* alpha-linux-tdep.c: Include linux-tdep.h.
(alpha_linux_init_abi): Call linux_init_abi.
* amd64-linux-tdep.c (amd64_linux_init_abi): Call linux_init_abi.
* arm-linux-tdep.c (arm_linux_init_abi): Call linux_init_abi.
* frv-linux-tdep.c: Include linux-tdep.h
(frv_linux_init_abi): Call linux_init_abi.
* hppa-linux-tdep.c: Include linux-tdep.h
(hppa_linux_init_abi): Call linux_init_abi.
* i386-linux-tdep.c (i386_linux_init_abi): Call linux_init_abi.
* ia64-linux-tdep.c: Include linux-tdep.h.
(ia64_linux_init_abi): Call linux_init_abi.
* m32r-linux-tdep.c: Include linux-tdep.h.
(m32r_linux_init_abi): Call linux_init_abi.
* m68klinux-tdep.c: Include linux-tdep.h.
(m68k_linux_init_abi): Call linux_init_abi.
* microblaze-linux-tdep.c: Include linux-tdep.h.
(microblaze_linux_init_abi): Call linux_init_abi.
* mips-linux-tdep.c: Include linux-tdep.h.
(mips_linux_init_abi): Call linux_init_abi.
* mn10300-linux-tdep.c: Include linux-tdep.h.
(am33_linux_init_osabi): Call linux_init_abi. Rename the
'gdbinfo' parameter to 'info'.
* ppc-linux-tdep.c: Include linux-tdep.h.
(ppc_linux_init_abi): Call linux_init_abi.
* sh-linux-tdep.c: Include linux-tdep.h.
(sh_linux_init_abi): Call linux_init_abi.
* sparc-linux-tdep.c: Include linux-tdep.h.
(sparc32_linux_init_abi): Call linux_init_abi.
* sparc64-linux-tdep.c: Include linux-tdep.h.
(sparc64_linux_init_abi): Call linux_init_abi.
* xtensa-linux-tdep.c: Include linux-tdep.h.
(xtensa_linux_init_abi): Call linux_init_abi.
* i386-cygwin-tdep.c (i386_windows_core_pid_to_str): New.
(i386_cygwin_init_abi): Install it as gdbarch_core_pid_to_str
callback.
|
|
Automatic update by copyright.sh.
|
|
* microblaze-linux-tdep.c:
microblaze_linux_memory_remove_breakpoint(): Add gdbarch to param,
replace frame_pc_unwind with get_frame_address_in_block.
* microblaze-tdep.c: Remove MICROBLAZE_REGISTER_SIZE.
* microblaze-tdep.h: Add MICROBLAZE_REGISTER_SIZE.
|
|
elf32-microblaze.c, microblaze-rom.c, microblaze-linux-tdep.c,
microblaze-tdep.h, microblaze-tdep.c, microblaze-opc.h,
microblaze-opcm.h, microblaze-dis.c, microblaze-dis.h, sim/microblaze,
microblaze.h, and microblaze.isa.
* configure.tgt: Add targets microblaze*-linux-*, microblaze*-xilinx-*.
* Makefile.in: Build microblaze-tdep.o, microblaze-linux-tdep.o.
HFILES_NO_SRCDIR: Add microblaze-tdep.h.
* microblaze-linux-tdep.c: New.
* microblaze-tdep.c: New.
* microblaze-tdep.h: New.
* NEWS: Announce Xilinx MicroBlaze support.
|