[SoC] [Application] Peek viewer/debugger
Marcus Denker
denker at iam.unibe.ch
Mon Mar 19 17:51:49 UTC 2007
On 19.03.2007, at 18:09, Matthew Fulmer wrote:
> On Sun, Mar 18, 2007 at 05:40:29PM -0700, Matthew Fulmer wrote:
>> I put my application on the Swiki at:
>> http://wiki.squeak.org/squeak/5965
>
> I updated it with a Schedule section, and added mention of
> MessageTally.
>
Using the contextStepSimulator is one possibility for getting a trace.
We used other means in the past, e.g. one idea can be to use
Bytecode transformation, a student at SCG did that for a Trace-based
back-in-time debugger:
Christoph Hofer, Marcus Denker, Stéphane Ducasse, Implementing a
Backward-In-Time Debugger,
http://www.iam.unibe.ch/~scg/cgi-bin/scgbib.cgi?
query=Hofe06a&abstract=yes
This used ByteSurgeon, a bytecode transformation framework, see
Marcus Denker, Stéphane Ducasse and Éric Tanter, Runtime Bytecode
Transformation for Smalltalk,
http://www.iam.unibe.ch/~scg/Archive/Papers/
Denk06aRuntimeByteCodeESUGJournal.pdf
The abstraction level of "inlining bytecode" is not really what is
wanted (the lesson learned ;-)), e.g. it
does not provide any composition or easy scoping/selection. Thus, we
put on top of the Bytecode
manipulation a Framework for Behavioral Reflection (a MOP) based on
the model of Eric Tanter's Reflex:
David Röthlisberger, Marcus Denker and Éric Tanter, “Unanticipated
Partial Behavioral Reflection"
http://www.iam.unibe.ch/~scg/cgi-bin/scgbib.cgi?
query=Roet06b&abstract=yes
This provides the abstraction level of "I want to reify (make first-
class) the concept of Message sending
in class X, this is the meta objec to call".
The nice effect is that this provides a way to retrict any overhead
to those cases where you want the
reifification to happen (selection has the granularity of single
instructions). And then, the system
allows for exactly specifying which information to pass to the meta.
Partial Behavioral Reflection: Spatial and Temporal Selection of
Reification (2003)
http://citeseer.ist.psu.edu/tanter03partial.html
Don't know if this makes sense in this context... but it might be an
alternative to using full
interpretation. Especially as "selectivity" is one of your goals, it
might be cool to not "trace
everything, then filter down", but "selectively trace" instead.
We have a much advanced version of the "Geppetto" System described in
the paper, but
that's in a not=yet=published state (but if you want to play with it,
send me a mail).
Marcus
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 3947 bytes
Desc: not available
Url : http://lists.squeakfoundation.org/pipermail/soc/attachments/20070319/2ebc58ab/smime-0001.bin
More information about the Soc
mailing list