[comp.sys.apple] GSBug Questions

tribby@hpindda.HP.COM (David Tribby) (06/16/89)

I'm using the new Apple II GS debugger, GSBug. The application version
works fine, but I have a few questions about the init (CDA) version...

	The documentation talks about a file named GSBUG.SETUP, but it
	did not come on the disk with the debugger. This file is supposed
	to go in a directory called SYSTEM.STARTUP. Should that directory
	be under */, */SYSTEM, or */SYSTEM/SYSTEM.SETUP (or somewhere else)?

	I can start the init version with control-OpenApple-Option-escape,
	but when I try to get out with q or qr, GSBug beeps at me and 
	leaves me in the command line. The q and qr work fine with the 
	application version. I finally got out by entering the commands
		off		to get the correct display
		s		start single-step mode
		j		jump into executing code.
	Any ideas why q doesn't work?

Thanks in advance!
--Dave Tribby
                                   - - - - -
        ARPA: tribby%hpda@hplabs.HP.COM   UUCP: hplabs!hpda!tribby

mattd@Apple.COM (Matt Deatherage) (06/17/89)

In article <6230036@hpindda.HP.COM> tribby@hpindda.HP.COM (David Tribby) writes:
>I'm using the new Apple II GS debugger, GSBug. The application version
>works fine, but I have a few questions about the init (CDA) version...
>
>	I can start the init version with control-OpenApple-Option-escape,
>	but when I try to get out with q or qr, GSBug beeps at me and 
>	leaves me in the command line. The q and qr work fine with the 
>	application version. I finally got out by entering the commands
>		off		to get the correct display
>		s		start single-step mode
>		j		jump into executing code.
>	Any ideas why q doesn't work?
>
>Thanks in advance!
>--Dave Tribby
>                                   - - - - -
>        ARPA: tribby%hpda@hplabs.HP.COM   UUCP: hplabs!hpda!tribby

Q doesn't work because it doesn't make sense to "quit" something you broke
into on the fly.  The command is "r" for "resume".

Why doesn't the package say this?  Because the command is in the release notes,
and when I was asked to approve them for shipment, I wouldn't, because they
talked about things they shouldn't have and nobody had time to clean them up,
so they went without them.  The changes since the manual are really minor, and
the manual on the whole is very good.  Yes, there are more commands in there
than the manual covers, but being beta software, they usually don't work.


-----------------------------------------------------------------------------
Matt Deatherage, Apple Computer, Inc. | "The opinions expressed in this tome
Send PERSONAL mail ONLY (please) to:  | should not be construed to imply that
AppleLink PE: Matt DTS  GEnie: AIIDTS | Apple Computer, Inc., or any of its
CompuServe: 76703,3030                | subsidiaries, in whole or in part,
Usenet:  mattd@apple.com              | have any opinion on any subject."
UUCP:  (other stuff)!ames!apple!mattd | "So there."
-----------------------------------------------------------------------------

jazzman@claris.com (Sydney R. Polk) (06/20/89)

From article <6230036@hpindda.HP.COM>, by tribby@hpindda.HP.COM (David Tribby):
> I'm using the new Apple II GS debugger, GSBug. The application version
> works fine, but I have a few questions about the init (CDA) version...
> 
> 	The documentation talks about a file named GSBUG.SETUP, but it
> 	did not come on the disk with the debugger. This file is supposed
> 	to go in a directory called SYSTEM.STARTUP. Should that directory
> 	be under */, */SYSTEM, or */SYSTEM/SYSTEM.SETUP (or somewhere else)?


We got no docs, but I don't think this file is essential.

> 	I can start the init version with control-OpenApple-Option-escape,
> 	but when I try to get out with q or qr, GSBug beeps at me and 
> 	leaves me in the command line. The q and qr work fine with the 
> 	application version. I finally got out by entering the commands
> 		off		to get the correct display
> 		s		start single-step mode
> 		j		jump into executing code.
> 	Any ideas why q doesn't work?

That is the only way to exit.  q actually would try to excute a prodos
quit call.  It doesn't make since in an init.  What you have done is
basically equivalent to a breakpoint.  It's as if the debugger was the boot
application (in a sense it is) and you can't really "quit" it.

> Thanks in advance!
> --Dave Tribby

Another neat thing:  The debugger leaves interrupts enabled period.  This
means that if you can make it the first thing in your system setup folder,
all sorts of things which normally wouldn't work with a CMS SCSI Card will
work.  For instance, when running AppleShare, if you set up a volume to 
be present when you boot, normally AppleShare would hang with a CMS SCSI
Card because the interrupts which tell the GS that the logon was successful
are eaten by the card (the card disables interrupts).  If the debug init
is run first however, this will work!

Gross.

-- 
Syd Polk           | Wherever you go, there you are.
jazzman@claris.com | Let the music be your light.
GO 'STROS!         | These opinions are mine.  Any resemblence to other
GO RICE!           |  opinions, real or fictitious, is purely coincidence.

tribby@hpindwa.HP.COM (David Tribby) (07/19/89)

Several comp.sys.apple readers were helpful the last time I had a GSBug
question, so here are a couple more...

1. Is there any way to set a "real time" breakpoint for a toolset call?
   Since I do most of my programming in TML Pascal, I would like to set
   a breakpoint on a particular toolset call, then let the program run
   in real time until the invocation.

2. Does the "init" version of GSBug interfere with the "run time" version?
   I have the init version enabled at startup, and sometimes peculiar
   things happen when I invoke the run-time version and try to load & debug.
   For example, I loaded my program, then tried to invoke the loader/dumper
   CDA to get the seqment addresses. When I pressed OA/Ctrl/esc, the display
   froze (the cursor quit blinking and no characters echoed on the screen).
   Things seemed to start working again when I pressed the option key (by
   itself), but it turned out I had invoked the init version of GSBug! I
   Restored from the init version, then could work with my program in the
   run-time GSBug.

Thanks in advance for any help!

--Dave Tribby
                                   - - - - -
        ARPA: tribby%hpda@hplabs.HP.COM   UUCP: hplabs!hpda!tribby

jazzman@claris.com (Sydney R. Polk) (07/20/89)

From article <36410002@hpindwa.HP.COM>, by tribby@hpindwa.HP.COM (David Tribby):
> Several comp.sys.apple readers were helpful the last time I had a GSBug
> question, so here are a couple more...
> 
> 1. Is there any way to set a "real time" breakpoint for a toolset call?
>    Since I do most of my programming in TML Pascal, I would like to set
>    a breakpoint on a particular toolset call, then let the program run
>    in real time until the invocation.
Ooh, yuck!  OK, you have to use something like Nifty List or Mangler to
find where the toolset is loaded.  You have to look in the tollset jump
table to figure out where the tool is.  If you suceed in this, you still
may fail, because you can't set a breakpoint to an address in ROM.

Now that I have thought a second, you might get the TSPtr by finding
and area in memory that is blank, assembling something to make the correct
call, and then setting a BP their.  You still may run into the ROM
problem, although you could set a bp in the dispatcher at the appropriate
place.

It would be much easier to set a breakpoint at the routine you are calling
the tool from and then turn mp off for e1000-ffff and step into it.
You do NOT want to do this in GS/OS calls; they have real-time code in them.

> 2. Does the "init" version of GSBug interfere with the "run time" version?
>    I have the init version enabled at startup, and sometimes peculiar
>    things happen when I invoke the run-time version and try to load & debug.
>    For example, I loaded my program, then tried to invoke the loader/dumper
>    CDA to get the seqment addresses. When I pressed OA/Ctrl/esc, the display
>    froze (the cursor quit blinking and no characters echoed on the screen).
>    Things seemed to start working again when I pressed the option key (by
>    itself), but it turned out I had invoked the init version of GSBug! I
>    Restored from the init version, then could work with my program in the
>    run-time GSBug.
What we do:  We set up a check at the beginning of our program to
see if Opt-Ctl are down.  If they are, we brk, which drops into the init
and we can set things up from there.  I NEVER use the run-time debugger
anymore;  if I have to, I run off of a disk without the init.

> Thanks in advance for any help!
> 
> --Dave Tribby
>                                    - - - - -
>         ARPA: tribby%hpda@hplabs.HP.COM   UUCP: hplabs!hpda!tribby
-- 
Syd Polk           | Wherever you go, there you are.
jazzman@claris.com | Let the music be your light.
GO 'STROS!         | These opinions are mine.  Any resemblence to other
GO RICE!           |  opinions, real or fictitious, is purely coincidence.

dlyons@Apple.COM (David Lyons) (07/20/89)

From article <36410002@hpindwa.HP.COM>, by tribby@hpindwa.HP.COM (David Tribby):
> Several comp.sys.apple readers were helpful the last time I had a GSBug
> question, so here are a couple more...
> 
> 1. Is there any way to set a "real time" breakpoint for a toolset call?
>    Since I do most of my programming in TML Pascal, I would like to set
>    a breakpoint on a particular toolset call, then let the program run
>    in real time until the invocation.

Yes!  The version APDA has (4.0b1) has SETTBRK, TBRKIN, and TBRKOUT (among
other things).  Note that 4.0b1 only breaks on $E10000 calls, not on the
$E10004 entry to the same calls.  (Some compilers generate lots of calls to
the $E10004 tool dispatcher, which expects an extra RTL address to already
be on the stack.)

Tool breaks come in very handy, at least for me.

> 2. Does the "init" version of GSBug interfere with the "run time" version?

Yes, at least sometimes.  Hold down Option during boot to keep the init from
loading (or delete the file, or mark it Inactive in the Finder).

 --Dave Lyons, Apple Computer, Inc.          |   DAL Systems
   AppleLink--Apple Edition: DAVE.LYONS      |   P.O. Box 875
   AppleLink--Personal Edition: Dave Lyons   |   Cupertino, CA 95015-0875
   GEnie: D.LYONS2 or DAVE.LYONS         CompuServe: 72177,3233
   Internet/BITNET:  dlyons@apple.com    UUCP:  ...!ames!apple!dlyons

   My opinions are my own, not Apple's.

tribby@hpindwa.HP.COM (David Tribby) (07/21/89)

Thanks, Syd & Dave, for the answers to my GSBUG questions! I asked...
|> 1. Is there any way to set a "real time" breakpoint for a toolset call?
And Dave Lyons pointed out...

|Yes!  The version APDA has (4.0b1) has SETTBRK, TBRKIN, and TBRKOUT (among
|other things).  

TBRKIN and TBRKOUT were exactly what I needed. SETTBRK and the commands to
show and clear toolset breakpoints were described in a cover sheet for the
4.0b1 manual, but not the related IN and OUT commands. Last month you told 
me about the "R" command, to reset the init version after poking around. Are 
there any other undocumented commands that work?


|> 2. Does the "init" version of GSBug interfere with the "run time" version?
|Yes, at least sometimes.  Hold down Option during boot to keep the init from
|loading (or delete the file, or mark it Inactive in the Finder).
As Syd points out, why even use the run time version? It's real handy to have
the init version available to look around in a running program. Is there any
situation where it's better to start from the run time version?


And now a bonus question...

I go into GSBug to examine parts of a program, including tracing it for
awhile and switching between the Super Hi-Res and GSBug screens. After I've
had enough, I go to single-step mode, switch to SHR, and jump back into my
code. When my program terminates back to APW, the screen seems to be in
low-resolution graphic mode rather than text mode. Why? (I fix the screen by
re-entering GSBug and immediately exiting.)

   
--Dave Tribby
                                   - - - - -
        ARPA: tribby%hpda@hplabs.HP.COM   UUCP: hplabs!hpda!tribby

wombat@claris.com (Scott Lindsey) (07/23/89)

From article <6230036@hpindda.HP.COM>, by tribby@hpindda.HP.COM (David Tribby):
> 	The documentation talks about a file named GSBUG.SETUP, but it
> 	did not come on the disk with the debugger. This file is supposed
> 	to go in a directory called SYSTEM.STARTUP. Should that directory
> 	be under */, */SYSTEM, or */SYSTEM/SYSTEM.SETUP (or somewhere else)?

From experience, not necessarily documenation:  After you've set up all the
settings, breakpoints, traps, etc. you want to default to, type
"csave */system/system.setup/gsbug.setup" to create the settings file.  This
file will be automatically used by GSBUG.INIT but not by GSBUG, the
stand-alone.  You can type "cload */system/system.setup/gsbug.setup" to load
it (or any other settings file w/ another pathname) into GSBUG, but I've yet
to discover any settings autoload for it.


-- 
Scott Lindsey     |"Cold and misty morning. I heard a warning borne in the air
Claris Corp.      |    About an age of power when no one had an hour to spare"
ames!claris!wombat| DISCLAIMER: These are not the opinions of Claris, Apple,
wombat@claris.com |    StyleWare, the author, or anyone else living or dead.

dlyons@Apple.COM (David Lyons) (07/23/89)

In article <6230036@hpindda.HP.COM> tribby@hpindda.HP.COM (David Tribby) writes:
>I'm using the new Apple II GS debugger, GSBug. The application version
>works fine, but I have a few questions about the init (CDA) version...
>
>	The documentation talks about a file named GSBUG.SETUP, but it
>	did not come on the disk with the debugger. This file is supposed
>	to go in a directory called SYSTEM.STARTUP. Should that directory
>	be under */, */SYSTEM, or */SYSTEM/SYSTEM.SETUP (or somewhere else)?

You can create the file using CSAVE; the correct directory is
*/SYSTEM/SYSTEM.SETUP.

>	I can start the init version with control-OpenApple-Option-escape,
>	but when I try to get out with q or qr, GSBug beeps at me and 
>	leaves me in the command line. The q and qr work fine with the 
>	application version. I finally got out by entering the commands
>		off		to get the correct display
>		s		start single-step mode
>		j		jump into executing code.
>	Any ideas why q doesn't work?

I don't think the docs are quite up to date with the product--try using
R for Resume instead.  If R doesn't work for you in particular circumstances,
then do what you did, using S and J.  That works (but leaves some memory in
bank 0 allocated, so you won't be able to launch P8 applications until you
reboot).

 --Dave Lyons, Apple Computer, Inc.          |   DAL Systems
   AppleLink--Apple Edition: DAVE.LYONS      |   P.O. Box 875
   AppleLink--Personal Edition: Dave Lyons   |   Cupertino, CA 95015-0875
   GEnie: D.LYONS2 or DAVE.LYONS         CompuServe: 72177,3233
   Internet/BITNET:  dlyons@apple.com    UUCP:  ...!ames!apple!dlyons

   My opinions are my own, not Apple's.

dlyons@Apple.COM (David Lyons) (07/25/89)

In article <36410003@hpindwa.HP.COM> tribby@hpindwa.HP.COM (David Tribby) writes:
>As Syd points out, why even use the run time version? It's real handy to have
>the init version available to look around in a running program. Is there any
>situation where it's better to start from the run time version?

Yes, I occasionally find the Application version useful.  Like when I want to
trace an application from the beginning & don't have a handy way to trap on
a tool call that I know it makes right at the start.  (It's really hard to
hit Apple-Option-Ctrl-Esc at just the right moment.  Using the App version
of the debugger and LOADing the program is much easier.)

>I go into GSBug to examine parts of a program, including tracing it for
>awhile and switching between the Super Hi-Res and GSBug screens. After I've
>had enough, I go to single-step mode, switch to SHR, and jump back into my
>code. When my program terminates back to APW, the screen seems to be in
>low-resolution graphic mode rather than text mode. Why? (I fix the screen by
>re-entering GSBug and immediately exiting.)

Happens to me too.  (Why?  To keep life interesting, I think.)

 --Dave Lyons, Apple Computer, Inc.          |   DAL Systems
   AppleLink--Apple Edition: DAVE.LYONS      |   P.O. Box 875
   AppleLink--Personal Edition: Dave Lyons   |   Cupertino, CA 95015-0875
   GEnie: D.LYONS2 or DAVE.LYONS         CompuServe: 72177,3233
   Internet/BITNET:  dlyons@apple.com    UUCP:  ...!ames!apple!dlyons

   My opinions are my own, not Apple's.