From: matija@avalon.physik.unizh.ch (Matija Milostnik)
Subject: Re: Amiga as a debugging machine: BLECH
Summary: Guru numbers are usefull
Keywords: coredump, guru
Organization: Informatik Club d. Universitaet, Zuerich
Date: Fri, 13 Nov 1992 13:35:14 GMT

In article <BxMqDG.8Ju@usenet.ucs.indiana.edu> shulick@yankton.ucs.indiana.edu (Sam Hulick) writes:
>In article <1992Nov12.142819.9665@ifi.unizh.ch> matija@avalon.physik.unizh.ch (Matija Milostnik) writes:
>>In article <1953@lysator.liu.se> marvil@lysator.liu.se (Martin Vilcans) writes:
>>>Wouldn't you like the computer to continue working and then let the user
>>>decide if he/she wants to reset?
>>Thats the suspend requester. Its your choise to suspend or reset.
>Guess what.  The Amiga doesn't always have that requester.  Sometimes it
>skips right to the guru.  And it seems the Guru is useless. 

It skeeps right to the guru when the data is not guarantied to be
safe. It was explained in the first response.

> So I get
>8000 0001, or something like that which is a memory allocation error.
>Ok, I know memory is screwed somewhere in my program.  How the hell does
>this aid me in debugging?  It doesn't. 

Wrong, it does. Apart from the fact that an explanation is better that
just a crash, you know by now where to look for the bug. You could
use memmung and enforcer (you are using this, arent you?) to 
get in dept information of the fault.

> And the "Task" pointer in the
>guru alert can't be helpful, can it?  It jus tells you the location in
>memory of your program.. big deal.

Remember that in the Amiga system evrything is dinamic.  A programm is
loaded in another memory location every time its started, thus this
information IS vital.

>IMO, debugging on the Amiga is like trying to port XWindows to the Apple
>II.  cpr (a SAS/C debugging tool) still is shoddy and ineffective.  I
>thought they'd spice it up a lot from v5.01 to v5.10b, but I was rather
>disappointed.

But this is not a Operating System fault...:-)

[...]  Now.. if someone could show me some NICE debugging
>utils for the Amiga, I'd be QUITE grateful.  BTW, my machine is an
>A3000-25.  If I have to take my source code to another machine/OS just
>to debug, that's pretty sad.

There are plenty of tools floating on the ocean, just lose the sight
of your shore and look in new directions.

o Enforcer, memmung, memwall, memoration, sushi, snoopdos, scratcher,
  lowmem, eatcycles, etc..
o SAS gives you a library to link with your program, aimed to better
  control memory allocations.
o debug.lib allows you to debug on another terminal while your programm
  is runnig, and dont forget 'LoadWB -DEBUG' in your startup-sequence
  (A simple printf here and there makes wonder)
o NewAllert gives you a nicer guru :-)
o A lot of programming tools dont deal directly with the faillure
  but help prevent them, e.g. generating code that is 'bug free'

And finally
o The best tool is your head. Think what you are going to program,
  read the RKM and the Autodocs. Narrow the search and use your 
  intuition to 'feel' where the fault is. And never give up. 

>(side note: the A3000 has an MMU.  doesn't this entitle me to memory
>protection and/or blocking crashes?)

Entitle you to ?????, me too, me too  :-|

If you study the functioning of Amiga, you will discover that its not
faesible with the current model of programming. It was a decision made
by the OS writers for better preformances, and is now limiting the 
implementation of MP.

Hope this helps
  Matija
>Sam Hulick          | "You can't discover new oceans unless you have the
-- 
Best regards from Matija Milostinik           : matija@avalon.ifi.unizh.ch  
                                              : matija@amiga.physik.unizh.ch
Therefore, use local labels in the procedures as often as possible. 
Save the environment!  Recycle!  ;-)                 (Bjoern Reese)
Newsgroups: comp.sys.amiga.misc