I have only worked with -abi, so I'm not sure about the status of the
simulator when not using -abi. This flag is used to generate a process
simulator, in which the operating system is abstracted away and
assumed to be working as the one in the host machine (all syscalls are
redirected to your own OS).
These errors you are seeing are common when developing a simulator for
the first time. So my advice would be to create your model with a
debug mode (see the mips model), in a way that when you compile with
-DDEBUG or something like that, it generates a very verbose simulator
that prints what every instruction is doing. This is essential for
development. In that way you can read a trace of what happened when it
attempted to execute your program and perfectly understand where is
the problem and which instruction executed incorrectly.
If you just try to guess what is wrong by the last error
(unidentified instruction or memory access violations), it is going to
be challenging. You need to print the trace of executed instructions
and look back and pin point the root cause.
If you are interested in debugging the syscall functions per se (those
are translation functions that translate how your model machine does
linux syscalls to how your host machine executes them), I would start
by either using gdb or adding printfs to these functions to understand
when they are called and why (the why can be answered by the trace).
Remember a good trace can be generated by the DEBUG statements in, for
example, the mips model.
> To unsubscribe from this group and stop receiving emails from it, send an email to
archc+un...@googlegroups.com.