This is the mail archive of the gdb-patches@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]

Re: Patch to provide m68k simulator to gdb


Below are some quick comment about things that are often missed when
integrating a new simulator.

--

New simulators use a header file (include/sim-XXX.h - eg
include/sim-d10v.h) as a way of avoiding magic numbers like:

sim_fetch_register()

+     case  0: case  1: case  2: case  3: case  4: case  5: case  6:
case  7:
+       /* address regs "a0", "a1", "a2", "a3", "a4", "a5", "fp", "sp"
*/
+     case  8: case  9: case 10: case 11: case 12: case 13: case 14:
case 15:
+       val = saved_state.regs[rn];

That header along with REGISTER_SIM_REGNO() make it possible to decouple
the simulators register numbers from GDBs.  Could the code please be
changed to at least use the header file.

--

I have a feeling that this code is implementing a number of
older/deprecated methods.  Have a look over include/remote-sim.h where
it clearly identifies deprecated interfaces.  For instance:

/* Single-step simulator with tracing enabled.
   THIS PROCEDURE IS DEPRECIATED.
   THIS PROCEDURE IS EVEN MORE DEPRECATED THAN SIM_SET_TRACE
   GDB and NRUN do not use this interface.

Make certain that you use `nrun.c'' and not the older ``run.c''.  Add
the line:

  # List of main object files for `run'.
  SIM_RUN_OBJS = nrun.o

to your Makefile.in.  It is probably why you implemented sim_trace()
et.al.


	Andrew


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