This is the mail archive of the gdb@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]