Extending Pharo Debugger

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

Extending Pharo Debugger

Matteo Marra
Hello,

I'm working on the Pharo debugger, and I wanted to add a button with new functionality just besides the buttons "Proceed" "restart" ...

Is there an easy way to do it? Which is the class that I have to Modify/Extend in order to do that?

I tried to look around the methods and I found where DebugSession is created, but I didn't see any clear reference to the UI or to how is constructed in it.

Thank you in advance,
Matteo
Reply | Threaded
Open this post in threaded view
|

Re: Extending Pharo Debugger

Andrei Chis
Hi Matteo,

If you look, for example at RestartDebugAction, there is on
the class side a method #gtStackDebuggingActionFor: that 
has the annotation <gtStackDebuggingAction>.

To attach actions to the stack (proceed, resume, step into) 
the debugger looks for subclasses of DebugAction that have 
class side methods annotated with gtStackDebuggingAction.

These methods can optionally receive the debugger instance 
as an argument. However you can also only have simple
methods like 'PeelToFirstDebugAction class>>#gtActionType'


Cheers,
Andrei



On Tue, Oct 4, 2016 at 4:10 PM, Matteo Marra <[hidden email]> wrote:
Hello,

I'm working on the Pharo debugger, and I wanted to add a button with new functionality just besides the buttons "Proceed" "restart" ...

Is there an easy way to do it? Which is the class that I have to Modify/Extend in order to do that?

I tried to look around the methods and I found where DebugSession is created, but I didn't see any clear reference to the UI or to how is constructed in it.

Thank you in advance,
Matteo

Reply | Threaded
Open this post in threaded view
|

Re: Extending Pharo Debugger

Matteo Marra
Hi Andrei,

thank you for your really fast answer!

Cheers,
Matteo

2016-10-04 16:20 GMT+02:00 Andrei Chis <[hidden email]>:
Hi Matteo,

If you look, for example at RestartDebugAction, there is on
the class side a method #gtStackDebuggingActionFor: that 
has the annotation <gtStackDebuggingAction>.

To attach actions to the stack (proceed, resume, step into) 
the debugger looks for subclasses of DebugAction that have 
class side methods annotated with gtStackDebuggingAction.

These methods can optionally receive the debugger instance 
as an argument. However you can also only have simple
methods like 'PeelToFirstDebugAction class>>#gtActionType'


Cheers,
Andrei



On Tue, Oct 4, 2016 at 4:10 PM, Matteo Marra <[hidden email]> wrote:
Hello,

I'm working on the Pharo debugger, and I wanted to add a button with new functionality just besides the buttons "Proceed" "restart" ...

Is there an easy way to do it? Which is the class that I have to Modify/Extend in order to do that?

I tried to look around the methods and I found where DebugSession is created, but I didn't see any clear reference to the UI or to how is constructed in it.

Thank you in advance,
Matteo


Reply | Threaded
Open this post in threaded view
|

Re: Extending Pharo Debugger

philippeback
While you are at it, make a button at the top with "Run to cursor". It is a missing one that requires oneto get the context menu to execute. Annoying.

Phil

On Tue, Oct 4, 2016 at 4:30 PM, Matteo Marra <[hidden email]> wrote:
Hi Andrei,

thank you for your really fast answer!

Cheers,
Matteo

2016-10-04 16:20 GMT+02:00 Andrei Chis <[hidden email]>:
Hi Matteo,

If you look, for example at RestartDebugAction, there is on
the class side a method #gtStackDebuggingActionFor: that 
has the annotation <gtStackDebuggingAction>.

To attach actions to the stack (proceed, resume, step into) 
the debugger looks for subclasses of DebugAction that have 
class side methods annotated with gtStackDebuggingAction.

These methods can optionally receive the debugger instance 
as an argument. However you can also only have simple
methods like 'PeelToFirstDebugAction class>>#gtActionType'


Cheers,
Andrei



On Tue, Oct 4, 2016 at 4:10 PM, Matteo Marra <[hidden email]> wrote:
Hello,

I'm working on the Pharo debugger, and I wanted to add a button with new functionality just besides the buttons "Proceed" "restart" ...

Is there an easy way to do it? Which is the class that I have to Modify/Extend in order to do that?

I tried to look around the methods and I found where DebugSession is created, but I didn't see any clear reference to the UI or to how is constructed in it.

Thank you in advance,
Matteo



Reply | Threaded
Open this post in threaded view
|

Re: Extending Pharo Debugger

stepharo
In reply to this post by Matteo Marra
Hi matteo

What do you want to add?

Stef


Le 4/10/16 à 16:10, Matteo Marra a écrit :

> Hello,
>
> I'm working on the Pharo debugger, and I wanted to add a button with
> new functionality just besides the buttons "Proceed" "restart" ...
>
> Is there an easy way to do it? Which is the class that I have to
> Modify/Extend in order to do that?
>
> I tried to look around the methods and I found where DebugSession is
> created, but I didn't see any clear reference to the UI or to how is
> constructed in it.
>
> Thank you in advance,
> Matteo


Reply | Threaded
Open this post in threaded view
|

Re: Extending Pharo Debugger

Matteo Marra
Hello Stephan,

In the work for my thesis, I'm building a debugger for big data applications, that when a bug happens doesn't stop the computation but proceeds evaluating the next data. This opens a series of debuggers in separate threads, that are shown one by one. I added a button that allows me to restart and automatically proceed all the waiting debuggers from a certain point of the stack (assuming that the stack has the same "shape"), so basically after I fix a bug in the first debugger I can say to the others: ok, the bug is solved, restart yorself and proceed.

The thing seems more or less to work, except some details that I still have to implement.

Matteo

2016-10-06 7:40 GMT+02:00 stepharo <[hidden email]>:
Hi matteo

What do you want to add?

Stef


Le 4/10/16 à 16:10, Matteo Marra a écrit :

Hello,

I'm working on the Pharo debugger, and I wanted to add a button with new functionality just besides the buttons "Proceed" "restart" ...

Is there an easy way to do it? Which is the class that I have to Modify/Extend in order to do that?

I tried to look around the methods and I found where DebugSession is created, but I didn't see any clear reference to the UI or to how is constructed in it.

Thank you in advance,
Matteo



Reply | Threaded
Open this post in threaded view
|

Re: Extending Pharo Debugger

stepharo

It looks fun :)

Are you looking for more ideas for your thesis?



Le 6/10/16 à 10:05, Matteo Marra a écrit :
Hello Stephan,

In the work for my thesis, I'm building a debugger for big data applications, that when a bug happens doesn't stop the computation but proceeds evaluating the next data. This opens a series of debuggers in separate threads, that are shown one by one. I added a button that allows me to restart and automatically proceed all the waiting debuggers from a certain point of the stack (assuming that the stack has the same "shape"), so basically after I fix a bug in the first debugger I can say to the others: ok, the bug is solved, restart yorself and proceed.

The thing seems more or less to work, except some details that I still have to implement.

Matteo

2016-10-06 7:40 GMT+02:00 stepharo <[hidden email]>:
Hi matteo

What do you want to add?

Stef


Le 4/10/16 à 16:10, Matteo Marra a écrit :

Hello,

I'm working on the Pharo debugger, and I wanted to add a button with new functionality just besides the buttons "Proceed" "restart" ...

Is there an easy way to do it? Which is the class that I have to Modify/Extend in order to do that?

I tried to look around the methods and I found where DebugSession is created, but I didn't see any clear reference to the UI or to how is constructed in it.

Thank you in advance,
Matteo