[Pharo-project] Better debugging...

Alexandre Bergel alexandre.bergel at me.com
Mon Apr 25 20:02:39 CEST 2011


> 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:

I know this. But this is not an operation supported by the environment. It is like a refactoring. I do not need the refactoring browser to do refactoring. But since it is one-click away in the refactoring browser, I refactor my code constantly.

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

Same thing. Having it embedded in the programming environment is challenging. Nobody has done this. The only significant improvement of debugger is omniscient. But we can go way further.

Alexandre

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

-- 
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.








More information about the Pharo-project mailing list