[comp.sys.amiga.tech] Ooops, forgot one thing in my Lattice review

dillon@POSTGRES.BERKELEY.EDU (Matt Dillon) (06/30/89)

	Lattice V 5.02 also has 'cpr' ... 'CodePRobe', a debugger.

	I have yet to use it so I can't compare it to Manx's SDB.  And
	anyway I don't have SDB so I guess you are all out of luck on
	comparison by me, but when I do begin using it you can be sure
	of a review.


			-Matt

ddave@pnet02.cts.com (David Donley) (07/03/89)

dillon@POSTGRES.BERKELEY.EDU (Matt Dillon) writes:
>
>	Lattice V 5.02 also has 'cpr' ... 'CodePRobe', a debugger.
>
>	I have yet to use it so I can't compare it to Manx's SDB.  And
>	anyway I don't have SDB so I guess you are all out of luck on
>	comparison by me, but when I do begin using it you can be sure
>	of a review.
>
>
>			-Matt

CPR takes up about 3 times as much memory as the manx SDB, and is slower. 
Lattice turnes a 155K program into a 650K one when you turn on debug, Manx
just adds an extra .DBG file of about 100K.

 _               _
| \ _   ___ _   | \ _    | _    Call THE Bug Eyes BBS at (213) 372-4494.
|_//-\\/_|_|_)  |_/(_)/\/||_-\/ Life is too short for copy-protection-
^[33m^[41mANSI is my life!^[m/  and should be even shorter for pirates!
Send mail to: ddave@pnet02.CTS.COM or killer!gryphon!pnet02!ddave NO FLAMES!

jesup@cbmvax.UUCP (Randell Jesup) (07/04/89)

In article <17315@gryphon.COM> ddave@pnet02.cts.com (David Donley) writes:
>dillon@POSTGRES.BERKELEY.EDU (Matt Dillon) writes:
>>
>>	Lattice V 5.02 also has 'cpr' ... 'CodePRobe', a debugger.
>
>CPR takes up about 3 times as much memory as the manx SDB, and is slower. 
>Lattice turnes a 155K program into a 650K one when you turn on debug, Manx
>just adds an extra .DBG file of about 100K.

	Depends on how much debugging you turn on (-d1 to -d5, I think).
Also, CPR has the nice ability to debug multi-process programs, and some
nice other features.  What I'd really like is a cross between CPR and
Metascope.  Also, you can use ARexx macros to extend CPR.

-- 
Randell Jesup, Keeper of AmigaDos, Commodore Engineering.
{uunet|rutgers}!cbmvax!jesup, jesup@cbmvax.cbm.commodore.com  BIX: rjesup  
Common phrase heard at Amiga Devcon '89: "It's in there!"

jadiel@CSUStan.EDU (Jose Juan DeLeon) (07/05/89)

In article <8906300628.AA13272@postgres.Berkeley.EDU> dillon@POSTGRES.BERKELEY.EDU (Matt Dillon) writes:
>
>	Lattice V 5.02 also has 'cpr' ... 'CodePRobe', a debugger.
>
>	I have yet to use it so I can't compare it to Manx's SDB. . . .

I tried 'cpr' 5 times.  Twice on plain old vanilla code that would work
with almost any compiler with none or a little code modification -- GURU.  I 
thought that maybe I wasn't using 'CodePRobe' correctly.  I tried out
the tutorial in the manual 3 times -- More GURU's!??.  It loads up just
fine, I can even step over a few lines of code, but when it gets to 
some magic number (not always the same) it decides to die.  I have     
1 megabyte system, I don't think thats a problem, I hope.

It even chokes on this:

           #include <stdio.h>

           void main () 
           {
               printf("Hello world\n") ;
           }


Jose 

mwm@eris.berkeley.edu (Mike (I'll think of something yet) Meyer) (07/05/89)

In article <1090@koko.CSUStan.EDU> jadiel@koko.UUCP (Jose Juan DeLeon) writes:
<I tried 'cpr' 5 times.  Twice on plain old vanilla code that would work
<with almost any compiler with none or a little code modification -- GURU.  I 
<thought that maybe I wasn't using 'CodePRobe' correctly.  I tried out
<the tutorial in the manual 3 times -- More GURU's!??.

The tutorial documentation is wrong. Try invoking cpr with the option
that makes it not run startup code (-s? - sorry, I'm going to be lazy
and make you look it up).

Also, cpr uses a _lot_ of stack space. Something like 16K just for
itself. Try it again with a 50K stack (that's what I'm using these
days). It works mostly (thought not always) fine for me under those
conditions.

	<mike

--
But I'll survive, no you won't catch me,		Mike Meyer
I'll resist the urge that is tempting me,		ucbvax!mwm
I'll avert my eyes, keep you off my knee,		mwm@berkeley.edu
But it feels so good when you talk to me.		mwm@ucbjade.BITNET

walker@sas.UUCP (Doug Walker) (07/06/89)

In article <17315@gryphon.COM> ddave@pnet02.cts.com (David Donley) writes:
>CPR takes up about 3 times as much memory as the manx SDB, and is slower. 

I don't know where you get your information, but according to Victor Wagner's
comparison in Transactor for the Amiga, CPR and SDB take up approximately the
same amount of memory.  

In what way is CPR slower than SDB?  I haven't heard that complaint before.
If you're using memory watchpoints, CPR is quite slow, but then again SDB
doesn't support memory watchpoints.  What you really need for that is some
kind of hardware debugging board.

>Lattice turnes a 155K program into a 650K one when you turn on debug, Manx
>just adds an extra .DBG file of about 100K.

Restructuring the debugging information is high on the list for the 6.0 release.
We discovered the problems with the current format too late and decided that
it would be better to get the product in the hands of the users and then
improve it than hold off another six months to improve the debug information.

--Doug

fgd3@jc3b21.UUCP (Fabbian G. Dufoe) (07/06/89)

From article <26010@agate.BERKELEY.EDU>, by mwm@eris.berkeley.edu (Mike (I'll think of something yet) Meyer):
> The tutorial documentation is wrong. Try invoking cpr with the option
> that makes it not run startup code (-s? - sorry, I'm going to be lazy
> and make you look it up).

     I had no problem running the tutorial according to the documentation,
but there is something you have to watch for.  There are two copies of the
lines program.  One is in :examples while the other is in
:examples/debugger.  The former doesn't work with the CPR defaults because
it uses _main() instead of main().  If you use the program in
:examples/debugger it will work fine.

     If you want to suppress the "go main" instruction at the beginning of
CPR invoke it with "cpr -startup".

> Also, cpr uses a _lot_ of stack space. Something like 16K just for
> itself. Try it again with a 50K stack (that's what I'm using these
> days). It works mostly (thought not always) fine for me under those
> conditions.

     I run it with a stack size of 15000.  It works fine.  Perhaps you're
using it on bigger programs than I am, which would explain a need for more
stack space.

--Fabbian Dufoe
  350 Ling-A-Mor Terrace South
  St. Petersburg, Florida  33705
  813-823-2350

UUCP: ...uunet!pdn!jc3b21!fgd3

walker@sas.UUCP (Doug Walker) (07/07/89)

In article <1090@koko.CSUStan.EDU> jadiel@koko.UUCP (Jose Juan DeLeon) writes:
>
>I tried 'cpr' 5 times.  Twice on plain old vanilla code that would work
>with almost any compiler with none or a little code modification -- GURU.  I 

There is a known bug in CPR that causes it to allocate 1/4 the amount of
stack requested.  If you want your program to have a 4k stack, better set
your cli's stack to 16k;  if it needs more than that, bump it 4k at a time
instead of 1.

--Doug

walker@sas.UUCP (Doug Walker) (07/07/89)

(Open mouth; insert foot; chew vigorously)

Yesterday I mentioned a 5.03.22 patch release.  This was an error.  The latest
patch release is 5.03.20.  We are currently working on 5.03.22.  If you are
a beta tester, or are encountering bugs that keep you from getting your work
done, contact Lattice technical support to find out what the latest release is
and to get a copy of it.

A 5.04 release will be available to fix everything fixed in all the patches,
and then some, 'Real Soon Now'.

--Doug

cmcmanis%pepper@Sun.COM (Chuck McManis) (07/07/89)

In article <1090@koko.CSUStan.EDU> jadiel@koko.UUCP (Jose Juan DeLeon) writes:
>I tried 'cpr' 5 times.  Twice on plain old vanilla code that would work
>with almost any compiler with none or a little code modification -- GURU.

Try it once where it has enough stack space. Lattice is getting beaten up
right and left on this one. CPR 5.0 alloc'd it's own stack, CPR 5.02 doesn't
and needs you to specify one of 25000 before starting it. CPR works very
reliably, truely it does.


--Chuck McManis
uucp: {anywhere}!sun!cmcmanis   BIX: cmcmanis  ARPAnet: cmcmanis@sun.com
These opinions are my own and no one elses, but you knew that didn't you.
"A most excellent barbarian ... Genghis Kahn!"

mwm@eris.berkeley.edu (Mike (I'll think of something yet) Meyer) (07/07/89)

In article <689@jc3b21.UUCP> fgd3@jc3b21.UUCP (Fabbian G. Dufoe) writes:
<From article <26010@agate.BERKELEY.EDU>, by mwm@eris.berkeley.edu (Mike (I'll think of something yet) Meyer):
<> The tutorial documentation is wrong. Try invoking cpr with the option
<> that makes it not run startup code
<
<     I had no problem running the tutorial according to the documentation,
<but there is something you have to watch for.  There are two copies of the
<lines program.  One is in :examples while the other is in
<:examples/debugger.

One works fine with no arguments to cpr; the other requires -startup.
The documentation points you to the wrong one. Either using the other
one, or the -startup switch will cause the rest of the documentation
to work fine.

<> Also, cpr uses a _lot_ of stack space. Something like 16K just for
<> itself. Try it again with a 50K stack.
<
<     I run it with a stack size of 15000.  It works fine.  Perhaps you're
<using it on bigger programs than I am, which would explain a need for more
<stack space.

No, I just like big stacks - and have a memory-rich system. Varargs
functions (especially those without source on the far end) seem to
give cpr problems. Other than that, and occaisionally losing debug
data so that it can't find variables to give me values, it works fine.

	<mike
--
Cats will be cats and cats will be cool			Mike Meyer
Cats can be callous and cats can be cruel		mwm@berkeley.edu
Cats will be cats, remember this words!			ucbvax!mwm
Cats will be cats and cats eat birds.			mwm@ucbjade.BITNET

ddave@pnet02.cts.com (David Donley) (07/07/89)

jesup@cbmvax.UUCP (Randell Jesup) writes:
>In article <17315@gryphon.COM> ddave@pnet02.cts.com (David Donley) writes:
>>dillon@POSTGRES.BERKELEY.EDU (Matt Dillon) writes:
>>>
>>>	Lattice V 5.02 also has 'cpr' ... 'CodePRobe', a debugger.
>>
>>CPR takes up about 3 times as much memory as the manx SDB, and is slower. 
>>Lattice turnes a 155K program into a 650K one when you turn on debug, Manx
>>just adds an extra .DBG file of about 100K.
>
>	Depends on how much debugging you turn on (-d1 to -d5, I think).
>Also, CPR has the nice ability to debug multi-process programs, and some
>nice other features.  What I'd really like is a cross between CPR and
>Metascope.  Also, you can use ARexx macros to extend CPR.
>
>-- 
>Randell Jesup, Keeper of AmigaDos, Commodore Engineering.
>{uunet|rutgers}!cbmvax!jesup, jesup@cbmvax.cbm.commodore.com  BIX: rjesup  
>Common phrase heard at Amiga Devcon '89: "It's in there!"


When you turn on the Lattice debug enough to achieve the same results MANX
achieves all the time... -d3, stores variables and structures in the debug
file (The lower levels only store function addresses)

Don't call Bug Eyes
 _               _
| \ _   ___ _   | \ _    | _    Call THE Bug Eyes BBS at (213) 372-4494.
|_//-\\/_|_|_)  |_/(_)/\/||_-\/ Life is too short for copy-protection-
^[33m^[41mANSI is my life!^[m/  and should be even shorter for pirates!
Send mail to: ddave@pnet02.CTS.COM or killer!gryphon!pnet02!ddave NO FLAMES!

ddave@pnet02.cts.com (David Donley) (07/07/89)

walker@sas.UUCP (Doug Walker) writes:
>In article <17315@gryphon.COM> ddave@pnet02.cts.com (David Donley) writes:
>>CPR takes up about 3 times as much memory as the manx SDB, and is slower. 
>
>I don't know where you get your information, but according to Victor Wagner's
>comparison in Transactor for the Amiga, CPR and SDB take up approximately the
>same amount of memory.  
>
>In what way is CPR slower than SDB?  I haven't heard that complaint before.
>If you're using memory watchpoints, CPR is quite slow, but then again SDB
>doesn't support memory watchpoints.  What you really need for that is some
>kind of hardware debugging board.
>
>>Lattice turnes a 155K program into a 650K one when you turn on debug, Manx
>>just adds an extra .DBG file of about 100K.
>
>Restructuring the debugging information is high on the list for the 6.0 release.
>We discovered the problems with the current format too late and decided that
>it would be better to get the product in the hands of the users and then
>improve it than hold off another six months to improve the debug information.
>
>--Doug


Manx does support memory watchpoints.  The Lattice debugger takes a lot more
memory when you start debugging a large program, because it starts dumping
lots of stuff in a temporary ram file.  It also takes memory because it has to
load the 650K executable in, while the MANX one only loads a 150K executable
and reads the 100K file off the disk (Well, on my harddisk, the MANX is faster
- on a floppy, I guess the Lattice would be faster since it uses more ram)

and doesn't read the structures defs off the disk.  I would be interested in
knowing how large the program was that the reviewer used to do his test.

 _               _
| \ _   ___ _   | \ _    | _    Call THE Bug Eyes BBS at (213) 372-4494.
|_//-\\/_|_|_)  |_/(_)/\/||_-\/ Life is too short for copy-protection-
^[33m^[41mANSI is my life!^[m/  and should be even shorter for pirates!
Send mail to: ddave@pnet02.CTS.COM or killer!gryphon!pnet02!ddave NO FLAMES!

mwm@eris.berkeley.edu (Mike (I'll think of something yet) Meyer) (07/07/89)

In article <1099@sas.UUCP> walker@sas.UUCP (Doug Walker) writes:
<(Open mouth; insert foot; chew vigorously)
<
<Yesterday I mentioned a 5.03.22 patch release.  This was an error.  The latest
<patch release is 5.03.20.  We are currently working on 5.03.22.  If you are
<a beta tester, or are encountering bugs that keep you from getting your work
<done, contact Lattice technical support to find out what the latest release is
<and to get a copy of it.

Uh, doug - are you sure you're not talking about some kind of internal
release? I just hung up on the BBS. The NEWFILE list for FIX was the
same as it's been forever; the version list of Lattice products still
showed the C compiler at 5.02.

If there's a new patch on the BBS, I'd like to have the file names to
download...

	<mike

--
Here's a song about absolutely nothing.			Mike Meyer
It's not about me, not about anyone else,		mwm@berkeley.edu
Not about love, not about being young.			ucbvax!mwm
Not about anything else, either.			mwm@ucbjade.BITNET

papa@pollux.usc.edu (Marco Papa) (07/07/89)

In article <17426@gryphon.COM> ddave@pnet02.cts.com (David Donley) writes:
>Manx does support memory watchpoints.

Since when? DSB has NEVER been updated and the first release did NOT include
memory watchpoints. Drinking too much beer, lately? :-)

-- Marco Papa 'Doc'
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
uucp:...!pollux!papa       BIX:papa       ARPAnet:pollux!papa@oberon.usc.edu
"There's Alpha, Beta, Gamma, Diga and Caligari!" -- Rick Unland
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

ddave@pnet02.cts.com (David Donley) (07/12/89)

papa@pollux.usc.edu (Marco Papa) writes:
>In article <17426@gryphon.COM> ddave@pnet02.cts.com (David Donley) writes:
>>Manx does support memory watchpoints.
>
>Since when? DSB has NEVER been updated and the first release did NOT include
>memory watchpoints. Drinking too much beer, lately? :-)
>
>-- Marco Papa 'Doc'
>-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
>uucp:...!pollux!papa       BIX:papa       ARPAnet:pollux!papa@oberon.usc.edu
>"There's Alpha, Beta, Gamma, Diga and Caligari!" -- Rick Unland
>-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=


Read the manual...
"...A second type of breakpoint, called an expression breakpoint, is taken
when a specified expression evaluates as true..." Page 22

Now gee, suppose I set an expression breakpoint to tell me when a variable was
diffrent from what it is now...

rm .signature
 _               _
| \ _   ___ _   | \ _    | _    Call THE Bug Eyes BBS at (213) 372-4494.
|_//-\\/_|_|_)  |_/(_)/\/||_-\/ Life is too short for copy-protection-
^[33m^[41mANSI is my life!^[m/  and should be even shorter for pirates!
Send mail to: ddave@pnet02.CTS.COM or killer!gryphon!pnet02!ddave NO FLAMES!

walker@sas.UUCP (Doug Walker) (07/14/89)

In article <17426@gryphon.COM> ddave@pnet02.cts.com (David Donley) writes:
>lots of stuff in a temporary ram file.  It also takes memory because it has to
>load the 650K executable in, while the MANX one only loads a 150K executable
>and reads the 100K file off the disk (Well, on my harddisk, the MANX is faster
>- on a floppy, I guess the Lattice would be faster since it uses more ram)

The implication of your posting was that CPR takes up more memory than SDB
for code, at least the way I interpreted it.  Obviously, if the exe is bigger,
it will take more memory.  As I said, we're working on it.

You can tell cpr to put its temporary file elsewhere besides RAM with the -t
option.  I have successfully debugged a sizeable program on a 512k one-drive
A1000 with the temp file on floppy.  If I had had a meg or more, as most
developers using the compiler do, I would have had no problem with the temp
file in RAM.

As an asid, a good technique to use is to have your makefile set up to build a 
non-debug version of the exe, like this:

prog: prog.d
   blink from prog.d to prog nodebug

prog.d: $(OBJS)
   blink from lib:c.o $(OBJS) to prog.d lib ...

Then when you want to use CPR, do it with prog.d;  when you want to run without
CPR, use prog.  

--Doug