Brian Hechinger wrote:
On Wed, May 28, 2003 at 04:03:55PM -0600, Kevin Handy
wrote:
Odd. If you can still Control/E to the prompt, try
'N' for several
instructions
to see if it is stuck in VMS's idle loop (cycles through a very small number
of instructions). If it is, it might not be seeing any interrupts.
oops, forgot to mention that part. if i Ctrl/E from within the running
simulator, it crashes sim and takes the controlling xterm/rxvt with it.
I don't know why it would take the xterm with it. Odd that.
[Sounds of grasping at straws]
Memory corruption might be occurring somewhere.
Wonder if one of the memory monitors, like ElectricFence, would
yield useful information. Don't know whats available on your system.
i should try doing this telnetting in from a remote
machine i think.
If Control/E doesn't work, then things are
really hosed.
it works, just not well. ;)
Sometimes that's a good thing. It may
actually be pointing right at
IMHO that's *always* a good thing. it has really opened my eyes to the fact
that your average opensource coder has been so coddled by the whole gcc/x86
platform that they have really started to make stupid mistakes and even
stupider assumptions about things. the most common assumption is that a
void pointer and an int pointer is the same size. which just happens to be
true in 32-bit land, but totally hoses those of us who live in 64-bit land.
hell, even the code that autoconf generates for tests makes that assumption.
That assumption started in the first versions of Unix on the PDP11, and
still occurrs in new code. It's part of what was once called the
"all the worlds a VAX" mentality.
Make sure you have all warnings turned on when you compile (look for
the CC definition), under gcc the option would be '-Wall'. Maybe it will
point at something obvious.
the problem,
but hiding it under a mass of additional messages.
how do i build just the VAX portion? 'make vax' does nothing, and 'make
VAX'
says everything is up to date. that's one ugly makefile, so it's kinda hard
to interpret for someone who hasn't messed with makefiles in years.
'make BIN/vax' should work (case is important here). All the binaries
are created in the BIN subdirectory.
The makefile should actually be fairly simple (as I wrote the original
version). Skip past the top of the makefile (which figures out your OS
and if network deviced should be configured) and the major part of
it is just lists of files for each emulator.
Something like it became necessary when the emulators started
sharing code for devices, and manually typing the compile
line was getting too complicated.
I've done
it using the 'N' command (next instruction), trying to trace out
bad instructions, and using gdb. It's very tedius when you are looking for
one instruction out of a million executed that are wrong.
first i need to get it to not crash completely. ;)
That's always a good start. ;=)