Hi Frank,<div><br></div><div>    IMO the exception is overkill.  The context can be found from the sender of the signalling context for error.  Once the context is found its selector and arguments are available.  Even if you keep the exception you shouldn&#39;t need to load it with all that state (ugly as hell).  It can all be discovered by introspection in the debugger.  And a better place for the introspection would be something like ContextPart&gt;invocationMessage that would answer a MessageSend for a context.  Note that createMethod is driven by a Message.</div>
<div><br></div><div>2˘<br><br><div class="gmail_quote">On Sun, Jan 27, 2013 at 3:23 AM,  <span dir="ltr">&lt;<a href="mailto:commits@source.squeak.org" target="_blank">commits@source.squeak.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Frank Shearar uploaded a new version of Kernel to project The Inbox:<br>
<a href="http://source.squeak.org/inbox/Kernel-fbs.732.mcz" target="_blank">http://source.squeak.org/inbox/Kernel-fbs.732.mcz</a><br>
<br>
==================== Summary ====================<br>
<br>
Name: Kernel-fbs.732<br>
Author: fbs<br>
Time: 27 January 2013, 11:23:27.822 am<br>
UUID: b9ad1255-fa5b-4480-ae3f-923fd0969ca8<br>
Ancestors: Kernel-nice.731<br>
<br>
#subclassResponsibility in-Debugger method creation #1 of 4: Raise a SubclassResponsibility when something sends #subclassResponsibility, recording the offending class, the selector, and the arguments to the selector. (The Debugger uses this information.)<br>

<br>
=============== Diff against Kernel-nice.731 ===============<br>
<br>
Item was changed:<br>
  ----- Method: Object&gt;&gt;subclassResponsibility (in category &#39;error handling&#39;) -----<br>
  subclassResponsibility<br>
        &quot;This message sets up a framework for the behavior of the class&#39; subclasses.<br>
        Announce that the subclass should have implemented this message.&quot;<br>
+       | exception args senderCtxt |<br>
+       &quot;We must assign to a local variable so that the Debugger can access the exception through thisParticularContext tempAt: 1. This also means that the exception local must be the first local declared.&quot;<br>

+       senderCtxt := thisContext sender.<br>
+        &quot;Copy the temps out of senderCtxt&quot;<br>
+       args := OrderedCollection new.<br>
+       1 to: senderCtxt selector numArgs do:<br>
+               [:idx | args addLast: (senderCtxt tempAt: idx)].<br>
+       exception := SubclassResponsibilityError<br>
+               class: self class<br>
+               selector: senderCtxt selector<br>
+               arguments: args.<br>
+       exception signal.!<br>
-<br>
-       self error: &#39;My subclass should have overridden &#39;, thisContext sender selector printString!<br>
<br>
<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>best,<div>Eliot</div>
</div>