[squeak-dev] Opening two debuggers in a single doit

David T. Lewis lewis at mail.msen.com
Thu Jan 25 01:51:04 UTC 2018


On Wed, Jan 24, 2018 at 04:35:11PM -0800, Chris Cunningham wrote:
> On Wed, Jan 24, 2018 at 4:31 PM, tim Rowledge <tim at rowledge.org> wrote:
> 
> >
> > > On 24-01-2018, at 4:25 PM, Tobias Pape <Das.Linux at gmx.de> wrote:
> > >
> > > Hold your horses :D
> > > It _is_ sent, indirectly, via:
> > >
> > > openContext: aContext label: aString contents: contentsStringOrNil
> > >       "Open a notifier in response to an error, halt, or notify. A
> > notifier view just shows a short view of the sender stack and provides a
> > menu that lets the user open a full debugger."
> > >
> > >       ^ Project current
> > >               dispatchTo: self
> > >               addPrefixAndSend: #OpenContext:label:contents:
> > >               withArguments: { aContext . aString . contentsStringOrNil }
> > >
> > > Which, in turn, is also sent???
> >
> > Good grief. What an excellent way to confuse our tools. Most definitely
> > not a technique I???d ever suggest teaching.
> >
> > Nope.
> 
> Now, how to fix the sendersOf to detect something pathological like this...
> 
> cbc

See the method comment in #dispatchTo:addPrefixAndSend:withArguments:

The mechanism is this pragma:

	<hasLiteralTest: #isDispatchSelector:>

Implementation is in Project class>>isDispatchSelector: which identifies the
target selectors. Apparently I left one of the selectors out of the list,
hence the confusion here.

Marcel has made considerable improvements to Squeak Projects in recent years,
and one good effect that I have noticed is that he has been able to reduce
the use of these dispatch methods.

Dave


More information about the Squeak-dev mailing list