[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:
> http://www.bergel.eu/download/papers/Berg10aProfiling.pdf
> 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?"
>

self haltIf:


> "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
case...


> "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.
>
>
I agree.


> 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.
>
> Cheers,
> Alexandre
>
>
>
> 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
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
>
>
>
>
>


-- 
Mariano
http://marianopeck.wordpress.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gforge.inria.fr/pipermail/pharo-project/attachments/20110425/91608ac3/attachment.htm>


More information about the Pharo-project mailing list