[Pharo-project] Better debugging...
Mariano Martinez Peck
marianopeck at gmail.com
Mon Apr 25 18:06:54 CEST 2011
On Mon, Apr 25, 2011 at 5:39 PM, Alexandre Bergel
<alexandre.bergel at me.com>wrote:
> All Smalltalk (and Java profilers) tells us which method call stack appears
> the most during an execution. This is pretty poor. "What are the objects
> that makes an execution slow?" and "Which are message arguments responsible
> of a slow execution?" are the two questions I will probably work on for the
> next two years. We already have some preliminary:
> More to come in a few days.
> Same thing for debugging. Why should I see the execution as a bunch of
> stack frame?
> "How to set a breakpoint based on the object state?"
> "Are all objects responsible for an odd execution or is there just a
> particular one?"
This is one of the things I was doing with the "used objects" stuff, where I
used a bit (the last one) in the Object Header and I modify the VM to
intercept all messages sent to such object and flag it as "used" when they
receive a message. So you could do:
| results |
results := UsedObjectDiscover trace: [ self blah ].
and results understands amountOfUsedObjects, amountOfUnusedObjects, blah
You can also query which objects where used for the [ self balh] in this
> "What is the exact difference of execution if I slightly change a method?"
> "If I call #foo it works, if I call #foo2 it does not work. Why? What are
> the objects that appears with #foo2 that do not appear with #foo?"
> All these questions are essential in my opinion.
> Code profiler and code debugger are pretty poor. I can continue with test
> code coverage tools.
> After all, Computer Science is a pretty young science.
> On 25 Apr 2011, at 07:34, Craig Latta wrote:
> > Hi Alexandre--
> >> Debugging, as well as profiling, is a topic that everybody got it
> >> wrong. We still debug an application in oo in the same way that
> >> people debugged their C program: thinking in term of call stack and
> >> stack frame instead of objects.
> > So tell us more! :) How do you express causality?
> > -C
> > --
> > Craig Latta
> > www.netjam.org/resume
> > +31 06 2757 7177
> > + 1 415 287 3547
> Alexandre Bergel http://www.bergel.eu
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Pharo-project