This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Re: debugging sh4 in mi mode
- From: Elena Zannoni <ezannoni at redhat dot com>
- To: "Kris Warkentin" <kewarken at qnx dot com>
- Cc: <gdb at sources dot redhat dot com>
- Date: Fri, 8 Nov 2002 12:16:06 -0500
- Subject: Re: debugging sh4 in mi mode
- References: <061701c28747$9ad7d8e0$0202040a@catdog>
Kris Warkentin writes:
> We were having a problem when debugging sh4 in mi mode with the
> "-data-disassemble" command. It seems that mi_cmd_disassemble() uses the
> function pointer tm_print_insn which, for sh, was NULL. I looked at some
> other arches and they seem to set tm_print_insn in their
> _initialize_<arch>_tdep() in <arch>-tdep.c so that is what I did to solve
> our problem. Is this the proper way to do it?
>
Are you working with an older version of gdb? This should be fixed in
current CVS. Right now the disassembler functions use
ui_file_rewind (stb->stream);
pc += TARGET_PRINT_INSN (pc, di);
ui_out_field_stream (uiout, "inst", stb);
TARGET_PRINT_INSN is wired into the multiarch machinery, and it will call
gdb_print_insns_sh:
set_gdbarch_print_insn (gdbarch, gdb_print_insn_sh);
Do you have the above lines in your version of gdb?
Elena
> cheers,
>
> Kris
>
> Index: sh-tdep.c
> ===================================================================
> RCS file: /product/tools/gdb/gdb/sh-tdep.c,v
> retrieving revision 1.8
> retrieving revision 1.9
> diff -c -r1.8 -r1.9
> *** sh-tdep.c 17 Sep 2002 18:31:22 -0000 1.8
> --- sh-tdep.c 8 Nov 2002 16:33:39 -0000 1.9
> ***************
> *** 2207,2211 ****
> --- 2207,2214 ----
>
> register_gdbarch_init (bfd_arch_sh, sh_gdbarch_init);
>
> + if(!tm_print_insn)
> + tm_print_insn = gdb_print_insn_sh;
> +
> add_com ("regs", class_vars, sh_show_regs_command, "Print all
> registers");
> }