Path: utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!usc!pollux.usc.edu!papa From: papa@pollux.usc.edu (Marco Papa) Newsgroups: comp.sys.amiga Subject: Re: MANX vs. Lattice memory breakpoints Message-ID: <18347@usc.edu> Date: 8 Jul 89 02:19:43 GMT References: <18346@usc.edu> <26115@agate.BERKELEY.EDU> Sender: news@usc.edu Reply-To: papa@pollux.usc.edu (Marco Papa) Organization: Felsina Software, Los Angeles, CA Lines: 53 In article <26115@agate.BERKELEY.EDU> mwm@eris.berkeley.edu (Mike (I'll think of something yet) Meyer) writes: >In article <18346@usc.edu> papa@pollux.usc.edu (Marco Papa) writes: >[stuff deleted] > >From the description, it looks like the SDB "expression change" >breakpoints are doing something different from CPR's watch breaks. To >wit, SDB just checks the expression after the generated code would >have changed it; CPR checks the memory after every instruction (or >something along those lines). If this assumption is false, ignore the >rest of this. Let me quote the SDB manual for clarity: "With an expressoin breakpoint set, sdb detects either the function or the instruction that caoused the specified expression to evaluate as true [i.e. a change in value in a variable], depending on whether the user's program was activated using the g command or is single stepped using the s command, respectively. When a user's program is activated wqith a g command and an expression breakpoint is set, sdb evaluates the specidied expression upon entry to, and exirt from EACH function. It takes a breakpoint, e.g. interrupt execution of the program and return control to the operator, when the expressionavaluates as true. When an s command is used to signel-step a program and an expresion breakpoint is set, sdb evaluates the specified expression after each instruction is executed and takes a breakpoint when appropriate". So y3es, the two type of breakpoints (SDB and CodeProbe) are not the same: SDB will only tell you inside which "function" the expression changed. Than you have to single step (and that could take forever if you have loops) to find the individual instructin that performed the change. With Codeprobe after EACH instruction the values of memory breakpoits are checked. The result is that a LAttice program being memeory-breakpointed will run quite slower than the original one, though it will easily pinpoint the problem, while more work is needed to do the same with MANX. This of course does not consider that MANX cannot set breakpoints for ranges, arrays, structs, formals and autos. I hope this makes it a little more clear. -- Marco Papa 'Doc' -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= uucp:...!pollux!papa BIX:papa ARPAnet:pollux!papa@oberon.usc.edu "There's Alpha, Beta, Gamma, Diga and Caligari!" -- Rick Unland -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=