[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