Re: debugging sh4 in mi mode

Kris Warkentin
2002-11-08T17:31:31Z

Yes. We're stuck on 5.2.1 for now. I had seen that everything was
multi-arch and wasn't sure if I was fixing it right. I'll fix it to match
what's on the head branch.

Thanks,

Kris

----- Original Message -----
From: "Elena Zannoni" <ezannoni@redhat.com>
To: "Kris Warkentin" <kewarken@qnx.com>
Cc: <gdb@sources.redhat.com>
Sent: Friday, November 08, 2002 12:16 PM
Subject: Re: debugging sh4 in mi mode

> 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");
> > }
>