On Tue, Jul 24, 2012 at 09:27:49AM +0200, jannik.laval wrote: > Hi Dave, > > Should I load the SystemTracer available on SqueakSource ? The last version > is from 2011, and seems old, no ? > When I try it, it calls some methods that do not exist in Pharo. > > Do you have more information on how to use it ?
Hi Jannik, The system tracer is explained in the class comment of class SystemTracer. The comment was written by Dan Ingalls (I think), and gives credit to Ted Kaehler as the inventor of the original. Class SystemTracer2 has additional documentation including how to run the trace. SystemTracer2 is a newer version that you will actually be using, so you can think of SystemTracer as the original reference implementation, while SystemTracer2 and its subclasses are variations on the original. SystemTracer64 is the subclass that implements conversion logic for copying 32-bit objects into the experimental 64-bit object memory format. This object format is described in the SystemTracer64 class comment, and more information is available at http://squeakvm.org/squeak64. A system tracer will first put your image into a "quiet" mode, then copy and convert the running object memory to a new image file, and then wake up and return to normal. This is similar to saving your image and restarting from a disk file, except that the system tracer will trace your object memory to a new format rather than saving it unchanged. To trace your running image to a new 64-bit image file, you would do this: SystemTracer64 writeImage: 'new64bitImage.image' The last update I did to SystemTracer (SystemTracing-dtl.23) works with closure-enabled images, including Pharo at one time. I have a 64-bit Pharo 1.4 image that I made about a year and a half ago. I don't know what has changed in Pharo since then, so probably some updates will be needed, or possibly a Pharo-specific version. I know that others on the Pharo list have worked on this, so hopefully someone else can give you some pointers about that. Dave
