GNU Binutils with patches for OS216
修訂 | 2454a0247b12f34d5eb87f52172722115b0f0915 (tree) |
---|---|
時間 | 2008-09-05 20:58:30 |
作者 | Ulrich Weigand <uweigand@de.i...> |
Commiter | Ulrich Weigand |
* rs6000-tdep.c (rs6000_gdbarch_init): Setup displaced stepping
*before* calling gdbarch_init_osabi.
(rs6000_aix_init_osabi): Disable displaced stepping.
@@ -1,5 +1,11 @@ | ||
1 | 1 | 2008-09-05 Ulrich Weigand <uweigand@de.ibm.com> |
2 | 2 | |
3 | + * rs6000-tdep.c (rs6000_gdbarch_init): Setup displaced stepping | |
4 | + *before* calling gdbarch_init_osabi. | |
5 | + (rs6000_aix_init_osabi): Disable displaced stepping. | |
6 | + | |
7 | +2008-09-05 Ulrich Weigand <uweigand@de.ibm.com> | |
8 | + | |
3 | 9 | * target.c (update_current_target): Do not inherit to_open |
4 | 10 | or to_close. |
5 | 11 | (pop_target): Call target_close on target_stack instead |
@@ -714,6 +714,13 @@ rs6000_aix_init_osabi (struct gdbarch_info info, struct gdbarch *gdbarch) | ||
714 | 714 | /* RS6000/AIX does not support PT_STEP. Has to be simulated. */ |
715 | 715 | set_gdbarch_software_single_step (gdbarch, rs6000_software_single_step); |
716 | 716 | |
717 | + /* Displaced stepping is currently not supported in combination with | |
718 | + software single-stepping. */ | |
719 | + set_gdbarch_displaced_step_copy_insn (gdbarch, NULL); | |
720 | + set_gdbarch_displaced_step_fixup (gdbarch, NULL); | |
721 | + set_gdbarch_displaced_step_free_closure (gdbarch, NULL); | |
722 | + set_gdbarch_displaced_step_location (gdbarch, NULL); | |
723 | + | |
717 | 724 | set_gdbarch_push_dummy_call (gdbarch, rs6000_push_dummy_call); |
718 | 725 | set_gdbarch_return_value (gdbarch, rs6000_return_value); |
719 | 726 | set_gdbarch_long_double_bit (gdbarch, 8 * TARGET_CHAR_BIT); |
@@ -3669,6 +3669,17 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) | ||
3669 | 3669 | /* Frame handling. */ |
3670 | 3670 | dwarf2_frame_set_init_reg (gdbarch, ppc_dwarf2_frame_init_reg); |
3671 | 3671 | |
3672 | + /* Setup displaced stepping. */ | |
3673 | + set_gdbarch_displaced_step_copy_insn (gdbarch, | |
3674 | + simple_displaced_step_copy_insn); | |
3675 | + set_gdbarch_displaced_step_fixup (gdbarch, ppc_displaced_step_fixup); | |
3676 | + set_gdbarch_displaced_step_free_closure (gdbarch, | |
3677 | + simple_displaced_step_free_closure); | |
3678 | + set_gdbarch_displaced_step_location (gdbarch, | |
3679 | + displaced_step_at_entry_point); | |
3680 | + | |
3681 | + set_gdbarch_max_insn_length (gdbarch, PPC_INSN_SIZE); | |
3682 | + | |
3672 | 3683 | /* Hook in ABI-specific overrides, if they have been registered. */ |
3673 | 3684 | info.target_desc = tdesc; |
3674 | 3685 | info.tdep_info = (void *) tdesc_data; |
@@ -3732,17 +3743,6 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) | ||
3732 | 3743 | gdb_assert (gdbarch_num_regs (gdbarch) |
3733 | 3744 | + gdbarch_num_pseudo_regs (gdbarch) == cur_reg); |
3734 | 3745 | |
3735 | - /* Setup displaced stepping. */ | |
3736 | - set_gdbarch_displaced_step_copy_insn (gdbarch, | |
3737 | - simple_displaced_step_copy_insn); | |
3738 | - set_gdbarch_displaced_step_fixup (gdbarch, ppc_displaced_step_fixup); | |
3739 | - set_gdbarch_displaced_step_free_closure (gdbarch, | |
3740 | - simple_displaced_step_free_closure); | |
3741 | - set_gdbarch_displaced_step_location (gdbarch, | |
3742 | - displaced_step_at_entry_point); | |
3743 | - | |
3744 | - set_gdbarch_max_insn_length (gdbarch, PPC_INSN_SIZE); | |
3745 | - | |
3746 | 3746 | return gdbarch; |
3747 | 3747 | } |
3748 | 3748 |