#Enforcer Quickie
30 messages in this thread
Does Enforcer require some sort of external terminal for viewing its
output? I've tried running it from WB and Shell, but I never see any
output, even when I run LawBreaker.
– Jim, on AutoPilot!
It only requires a terminal (or a printer) if you don't give it the STDIO
keyword.
Thanks for the info. 🙂
– Jim, on AutoPilot!
Yes.
I think you can use a program called sushi to print enforcer output on
your own machine.
Usually, when the enforcer has output to show, the machine it is on will
not have much time left for displaying messages, and you don't want it
writing to the HD…
Thanks, Arnie. Sushi, huh? I'll have to see if I can dig that up. Are
there any other testing tools you'd recommend?
– Jim, on AutoPilot!
Jim, In the newer enforcer, add the FILE=RAD:Enforcer_Hit tooltype (of cource
RAD has to be mounted). Run eforcer from WB or form CLI with the equiv keword
for the above. Then after a crash, use QBTools or the like to recover rad and
then just read the Enforcer_Hit file.
wmc – via Autopilot!
Thanks for the tip, Wayne.
– Jim, on AutoPilot!
Mungwall and memoration are handy also..
Arnie, The newer enforcer can be directed to output to RAD:. Then after the
crash and restart, use QBTools or similar to recover RAD and you can see most
of the enforcer hits up to the point of the reboot.
wmc – via Autopilot!
You have the current version, right? That was true of earlier versions, but
isn't any more.
-Karl
Thanks for the reply, Karl. I got it squared away.
– Jim, on AutoPilot!
Jim,
You can send Enforcer output to serial, or parallel, or to the screen. I send
its output to a shell. I simply start via shell by "Enforcer On".
-sja
Thanks, Steve. I used "Enforcer stdio" and it worked fine from the Shell.
My program doesn't seem to be causing Enforcer hits, but it is making my
machine crash. I'm using the various chunky-to-planar routines in the lib
here, but they all do the same thing — produce a squashed, doubled
picture and overwrite stuff (like Devpac) in chip RAM. Sometimes Devpac's
menus don't come down; sometimes the size and screen-to-back gadgets and
the dragbar quit working. Weird.
– Jim, on AutoPilot!
Sounds like you're writing over memory you don't "own" … have you also been
running Mungwall in conjunction with Enforcer? What cpu do you have?
-sja
I know…the weird thing is, I just plugged in three of the chunky-to-
planar routines I found in the library here. They not only don't convert
the picture right, but they both overwrite other areas of memory. (Well,
one of them — the blitter/CPU one — totally wipes out.) When I use the
slow WritePixel method, nothing adverse occurs.
"Mungwall"? <g> I think I may have downloaded that a while back on my
other computer…I'll have to take a look. What's it do, anyway?
I'm using an A4000/040/25 with 18MB RAM (my Toaster/AutoPilot/everything
else machine).
– Jim, on AutoPilot!
Mungwall surrounds your allocations with special pad bytes it recoginzes
when you stomp them, it also patterns unused memory, and notices when you
stomp it, and tracks your allocations and frees to make sure the sizes are
right.. it probably does a host of other cool things too. I get its
output on my terminal.. because I can. Segtracker and its companion
findhit are handy, segtracker knows where the addresses on the stack came
from when you get an enforcer hit, and findhit tracks the info from
segtracker in the hit to actual lines of code.
Arnie –
Thanks for the suggestions. I'll see if I can dig them up. BTW, how
might I go about setting up a debugging terminal? (I have a faint idea,
but I'm not too sure.)
– Jim, on AutoPilot!
Get another computer, or a real-cheap used terminal, like an old vt100.
Connect it to your serial port with a null-modem connector.
voila.
>> Get another computer, or a real-cheap used terminal, like an old vt100.
A couple more questions here:
What do I have to have running on the terminal? A telecomm program?
Do you know of any good remote debugging utilities for the Amiga (that are
still available, of course)?
– Jim, on AutoPilot!
The terminal is like a real dumb computer that ONLY runs a telecom
program.. and not one with a phonebook and all, it's just a screen and
keyboard on a serial port. They used to be used for talking to
mainframes.
CPR that comes with SAS has some remote debugging modes which I'm not
really familiar with.
"They used to be used"…
Hey, they still are! :*)
Actually mainframe terminals used more intelligence and block tranfer
modes. Real dumb terminals are used with Unix, VMS and other time-sharing
OS's on anything from large clones to mainframes.
DJ
On AP from Queens, the thrill and excitement of the Big Apple
Where a little paranoia keeps you healthy and sane …
And if you send it to a file in RAD and recover RAD after the crash you get
time to actually study the enforer I/O :^}
wmc – via Autopilot!
If you do it "properly" you run the program under CPR control and when you have
an Enforcer hit the line of source that caused it will immediately be brought
up.
-sja
Jim,
I invariably send the output from Enforcer to a recoverable RAM disk – I
think it's called STAT-RAM or SD0
Then, even when the machine has crashed, the file is still there after a
warm boot – i.e provided you didn't turn the power off!
Regards,
Shraddhan (via AP from Hertfordshire, England)
Shraddhan –
Thanks for the info. I don't believe I've ever heard of SD0. Is it some
sort of public domain device driver or something?
– Jim, on AutoPilot!
Jim,
An extract from the README file for STATRAM 2.2:
————————————————————————
STAT-RAM 2.2
————————————————————————
A joint effort by
Richard Waspe
INTERNET : waspy@cix.compulink.co.uk
USENET : rwaspe@hamlet.adsp.sub.org
FIDONET : 2:255/72.2
Nicola Salmoria
INTERNET : MC6489@mclink.it
StatRam is a very fast, very recoverable ram drive. It works on any
Amiga using V2.04 or greater of the OS. It maintains the remarkable
recoverability of the original VD0:, but has now been totally
re-written to handle any DOS filesystem, be named what you like, and
give back memory from deleted files instantly.
Regards,
Shraddhan (via AP from Hertfordshire, England)
Thanks for the E-mail, Shraddhan. I'll try it out.
You wouldn't happen to know any reasons why my crashing program doesn't
crash under Enforcer, Mungwall, and Sushi, would you?
– Jim, on AutoPilot!
> You wouldn't happen to know any reasons why my crashing program
> doesn't crash under Enforcer, Mungwall, and Sushi, would you?
As I have never seen your program, and don't know what kind of crash you
get, this is a toughie.
Some of my crashes occur when the processor decides to execute data
instead of instructions – an easy thing to do in assembler!
In C, where the above scenario should be rare:
(1) Stack overflow
(2) Incorrect pointers (as distinct from being null)
(3) Arrays going out of bounds
(4) Programmer error
(5) Some other reason I can't think of at this time in the morning
If it's not a very long program, I'd be happy to have a poke at it.
Regards,
Shraddhan (via AP from Hertfordshire, England)
>> If it's not a very long program, I'd be happy to have a poke at it.
Thanks for the offer, Shraddhan, but I figured it out. I was calling
FreeMem (to free the memory I allocated for the bitmap) before closing the
screen.
But I may keep that offer in mind for the future. <bg>
– Jim, on AutoPilot!