[squeak-dev] About controlling debugger popping up

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

[squeak-dev] About controlling debugger popping up

stephane ducasse
Hello list,

I was thinking how I would control the opening of debugger on deployed  
application.
Imagine I want to copy the stack and send it by email or something  
like that.

I could change the defaultAction of UnhandledError for example.

Now if I want to scope the control of popping debuggers I could use  
on:do:
and  I was wondering if there is an idiom. I was not sure that this is  
a good style to
do on: UnhandledError do: .... but may be I'm wrong

So how do you do it.

Stef
 

Reply | Threaded
Open this post in threaded view
|

RE: [squeak-dev] About controlling debugger popping up

Gary Chambers-4
We use Preferences>>disableProgrammerFacilities (modified in UI Enhancements
to disable halos et., elsewhere modified to preserve cut/copy/paste shortcut
keys).

Also sets the default ToolSet to nil meaning unhandled errors get handled by
a popup dialog (though generally unsuccessful at resuming from there :-) ).

ToolSet might be the best place to start for you.

Regards, Gary.

> -----Original Message-----
> From: [hidden email]
> [mailto:[hidden email]]On Behalf Of
> stephane ducasse
> Sent: 05 August 2008 5:32 PM
> To: The general-purpose Squeak developers list
> Subject: [squeak-dev] About controlling debugger popping up
>
>
> Hello list,
>
> I was thinking how I would control the opening of debugger on deployed
> application.
> Imagine I want to copy the stack and send it by email or something
> like that.
>
> I could change the defaultAction of UnhandledError for example.
>
> Now if I want to scope the control of popping debuggers I could use
> on:do:
> and  I was wondering if there is an idiom. I was not sure that this is
> a good style to
> do on: UnhandledError do: .... but may be I'm wrong
>
> So how do you do it.
>
> Stef
>
>


Reply | Threaded
Open this post in threaded view
|

[squeak-dev] Re: About controlling debugger popping up

Andreas.Raab
In reply to this post by stephane ducasse
In Qwaq Forums, we have a default error handler per-process which gets
called if an error isn't handled directly. This makes it possible to
attribute "other" processes with a viable error handler in particular if
you expect this to be a potentially flaky subsystem (the finalization
process has  had that issue once upon a time).

In addition, we use a singleton (SystemErrorHandler default) which gets
called if no per-process handler is installed (by default it dispatches
to ToolSet default). The running application then installs itself as the
default error handler and does whatever it wants with the resulting
(unhandled) error.

The advantage is that a) you don't need to hack UnhandledError etc. for
your specific application and b) that you can handle errors in *all*
processes. Which obviously is a very helpful thing for a heavily
multi-threaded application like Qwaq Forums ;-)

There are lots of other cool things we have done (if I may blatantly say
so ;-) without "disabling programmer facilities" with the sledge hammer.
For example, Qwaq Forums installs a custom user interrupt handler, so if
you hit Alt-Period you are being asked for a password which allows you
to do all sorts of fun things: From breaking into the sealed app, over
enabling certain restricted features up to exposing additional developer
options in menus for debugging the sealed application.

Needless to say, all of this is available in Croquet.

Cheers,
   - Andreas

stephane ducasse wrote:

> Hello list,
>
> I was thinking how I would control the opening of debugger on deployed
> application.
> Imagine I want to copy the stack and send it by email or something like
> that.
>
> I could change the defaultAction of UnhandledError for example.
>
> Now if I want to scope the control of popping debuggers I could use on:do:
> and  I was wondering if there is an idiom. I was not sure that this is a
> good style to
> do on: UnhandledError do: .... but may be I'm wrong
>
> So how do you do it.
>
> Stef

Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Re: About controlling debugger popping up

johnmci
In Sophie we do exactly that, we prompt the user for permission and
ask for name-address-etc, plus any other additional information.

(a) many people give permission, we had to alter the stack trace-back
logic to print lots more data btw. Perhaps as much as 200K of data has
to come back in order to figure out why the walkback occured.

(b) No one ever supplies contact information, they will anonoymously
beg for help tho. Sadly anonoymous pleas for help can't be answered

(c) That gets POSTed to a web site, where the server then saves and
emails the Sophie Support Engineer. Obviously a bit of programming
there could use a database to figure out if the error is unique or not
etc. Even say to emailing the person back with a problem tracking
number or existing entry

>> Hello list,
>>
>> I was thinking how I would control the opening of debugger on deployed
>> application.
>> Imagine I want to copy the stack and send it by email or something like
>> that.
>>

Reply | Threaded
Open this post in threaded view
|

[squeak-dev] Re: About controlling debugger popping up

Andreas.Raab
Yup, same experience here. People are quite willing to tell you that
your product sucks and breaks ;-) and we have taken great advantage of
this. However, we don't ask for contact information; all you get is a
"report error" button.

Cheers,
   - Andreas

John M McIntosh wrote:

> In Sophie we do exactly that, we prompt the user for permission and
> ask for name-address-etc, plus any other additional information.
>
> (a) many people give permission, we had to alter the stack trace-back
> logic to print lots more data btw. Perhaps as much as 200K of data has
> to come back in order to figure out why the walkback occured.
>
> (b) No one ever supplies contact information, they will anonoymously
> beg for help tho. Sadly anonoymous pleas for help can't be answered
>
> (c) That gets POSTed to a web site, where the server then saves and
> emails the Sophie Support Engineer. Obviously a bit of programming
> there could use a database to figure out if the error is unique or not
> etc. Even say to emailing the person back with a problem tracking
> number or existing entry
>
>>> Hello list,
>>>
>>> I was thinking how I would control the opening of debugger on deployed
>>> application.
>>> Imagine I want to copy the stack and send it by email or something like
>>> that.
>>>
>
>


Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Re: About controlling debugger popping up

johnmci
Well people won't give you even an email address. This unfortunate
breaks part of the problem question answer cycle. Although we might
push all the stacks for all the processes and most of the data values,
that sometimes only shows: Gee how did they do that, but then you have
no way to ask what they were doing...  Suggestions on how to entice
that information out of a user is welcome.

>
> Cheers,
>  - Andreas
>
> John M McIntosh wrote:
>>
>> In Sophie we do exactly that, we prompt the user for permission and
>> ask for name-address-etc, plus any other additional information.
>>
>> (a) many people give permission, we had to alter the stack trace-back
>> logic to print lots more data btw. Perhaps as much as 200K of data has
>> to come back in order to figure out why the walkback occured.
>>
>> (b) No one ever supplies contact information, they will anonoymously
>> beg for help tho. Sadly anonoymous pleas for help can't be answered
>>
>> (c) That gets POSTed to a web site, where the server then saves and
>> emails the Sophie Support Engineer. Obviously a bit of programming
>> there could use a database to figure out if the error is unique or not
>> etc. Even say to emailing the person back with a problem tracking
>> number or existing entry
>>
>>>> Hello list,
>>>>
>>>> I was thinking how I would control the opening of debugger on deployed
>>>> application.
>>>> Imagine I want to copy the stack and send it by email or something like
>>>> that.
>>>>
>>
>>
>
>
>

Reply | Threaded
Open this post in threaded view
|

RE: [squeak-dev] Re: About controlling debugger popping up

Gary Chambers-4
Perhaps unhandled errors could be made more easily pluggable for
deployment...

> -----Original Message-----
> From: [hidden email]
> [mailto:[hidden email]]On Behalf Of John
> M McIntosh
> Sent: 05 August 2008 6:55 PM
> To: The general-purpose Squeak developers list
> Subject: Re: [squeak-dev] Re: About controlling debugger popping up
>
>
> Well people won't give you even an email address. This unfortunate
> breaks part of the problem question answer cycle. Although we might
> push all the stacks for all the processes and most of the data values,
> that sometimes only shows: Gee how did they do that, but then you have
> no way to ask what they were doing...  Suggestions on how to entice
> that information out of a user is welcome.
> >


Reply | Threaded
Open this post in threaded view
|

[squeak-dev] Re: About controlling debugger popping up

Andreas.Raab
In reply to this post by johnmci
One thing you could do is to give people a ticket id (returned from the
server) so they can check for themselves if they want to know if a
problem was fixed. It doesn't require them to reveal any info but makes
it possible to check for the status of the problem.

Also, I think the problem is merely one of convenience. If you would
pre-populate the email they'd probably be fine with it. It's just that
when people are frustrated (which they are since the system just blew up
on 'em) they're usually not in the mood to spend more time than
absolutely necessary. If it's one click, fine, if it's more, it's not.

Cheers,
   - Andreas

John M McIntosh wrote:

> Well people won't give you even an email address. This unfortunate
> breaks part of the problem question answer cycle. Although we might
> push all the stacks for all the processes and most of the data values,
> that sometimes only shows: Gee how did they do that, but then you have
> no way to ask what they were doing...  Suggestions on how to entice
> that information out of a user is welcome.
>
>> Cheers,
>>  - Andreas
>>
>> John M McIntosh wrote:
>>> In Sophie we do exactly that, we prompt the user for permission and
>>> ask for name-address-etc, plus any other additional information.
>>>
>>> (a) many people give permission, we had to alter the stack trace-back
>>> logic to print lots more data btw. Perhaps as much as 200K of data has
>>> to come back in order to figure out why the walkback occured.
>>>
>>> (b) No one ever supplies contact information, they will anonoymously
>>> beg for help tho. Sadly anonoymous pleas for help can't be answered
>>>
>>> (c) That gets POSTed to a web site, where the server then saves and
>>> emails the Sophie Support Engineer. Obviously a bit of programming
>>> there could use a database to figure out if the error is unique or not
>>> etc. Even say to emailing the person back with a problem tracking
>>> number or existing entry
>>>
>>>>> Hello list,
>>>>>
>>>>> I was thinking how I would control the opening of debugger on deployed
>>>>> application.
>>>>> Imagine I want to copy the stack and send it by email or something like
>>>>> that.
>>>>>
>>>
>>
>>
>
>


Reply | Threaded
Open this post in threaded view
|

Re[2]: [squeak-dev] Re: About controlling debugger popping up

Herbert König
In reply to this post by johnmci
Hello John,

JMM> that sometimes only shows: Gee how did they do that, but then you have
JMM> no way to ask what they were doing...  Suggestions on how to entice
JMM> that information out of a user is welcome.
if they are willing to reply (our customers do) they won't remember
how they did it. So we keep a list of the last 5000 function calls
with parameters in memory and dump that list too.

Then in case of a crash we can follow the series of top level
invocations. Did this when several customers reported the same bug and
we couldn't reproduce it for months.

No Smalltalk so it was a lot of work :-))

Cheers

Herbert                            mailto:[hidden email]


Reply | Threaded
Open this post in threaded view
|

[squeak-dev] Re: About controlling debugger popping up

Andreas.Raab
Herbert König wrote:
> JMM> that sometimes only shows: Gee how did they do that, but then you have
> JMM> no way to ask what they were doing...  Suggestions on how to entice
> JMM> that information out of a user is welcome.
> if they are willing to reply (our customers do) they won't remember
> how they did it. So we keep a list of the last 5000 function calls
> with parameters in memory and dump that list too.

What we do is writing log information to the transcript and send this
along. It's an invaluable resource since you can basically follow along
(in very general terms) what people were doing and in particular
exceptional situations (for us that's mostly connection drops and
reconnect handling) can be caught that way.

Cheers,
   - Andreas