With a few sprints coming and such enthusiasm for our tools this is an opportune thread to remind folks the debugger itself needs some serious work on it. I would suggest doing this first before adding features to it. Any volunteers?

1) pressing send does not always change the highlighted context. You often press send twice to achieve what you want and then sometimes over step. I have debugged into this and in one example it does simulate the bytecode but the debugger does not change. I am trying to write a test for it. See below.

2) highlighting is badly broken.

To this end I am trying to write some tests that demonstrate the problems. I am finding it quite hard to write a test harness since debugging it is sometimes a challenge and I get caught out by the simulation guard. Any help/suggestions on the best way to invoke the debugger in this context would be appreciated. It requires quite a deep understanding of the execution machinery...

At the moment I create a new process that is suspended and then open the debugger in it using the no suspend api but I am not sure this is the best approach. There are subtleties in the opening protocol which I don't fully understand surrounding what happens to the active process. There is an existing test case that uses semaphores but I have found that approach problematic in what I am trying to do.

My basic goal is this and could easily be expressed in a table with columns
1) method source
The string of an exactly formatted method
2)
Debugger commands
Send,send,send,send,
3)highlight interval before
1:14,5:8,12:34 etc


The debugger would then be created on the fly invoked on the method and then the sequence of commands replayed and positions checked.

Once basic highlighting could be checked I would enhance it to check step, step into block and asserting the top context and other things.


Cheers
Mike

On 4 Jun 2010, at 07:38, Jorge Ressia <[email protected]> wrote:

I've been using TDDFacilities in Pharo since it was first released. It
is precisely what I needed to achieve real TDD while developing my
tools.
New features in the New Compiler and TextLint (from scratch) were
developed using this tool.

Doru, if you want I can give you a short demo of it.

I think that what Hernan is proposing is very important. The debugger
is the tool that TDD developers use the most, we should concentrate on
it first and then try to find out other potential improvements in
other tools.

I think we should invest some time into this.

Cheers,

Jorge

On Fri, Jun 4, 2010 at 7:36 AM, Lukas Renggli <[email protected]> wrote:
OBSUnitIntegration is already providing some of those:

1) When you are in the browser writing a test method, you can press ctrl + t to save the method and run the test. If the test runs, it will show the green dot in the browser, if it does not, it popups the debugger directly on the error. So, this is a way to avoid pressing ctrl + s (save) then going to the method list, rigth click an select run test and if it fails select that
you want to debug it.

Ctrl+T does not save, but it runs the tests and shows the debugger. I
don't think that I like the two things to be combined :-)

2) Same as ctrl + t but ctrl + r to directly debug the test. It saves the
method, puts a breakpoint in it and debugs it. Unfortunaly, in Pharo
breakpoints dont show very well in the debuger (it highlights incorrect
collaborations)

Ctrl+D opens a full debugger on the first line of the selected test,
no matter if the test fails or not. It doesn't use breakpoints. And I
use it all the time :-)

So maybe we could combine some of that code?

Lukas


--
Lukas Renggli
www.lukas-renggli.ch

_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to