-
Notifications
You must be signed in to change notification settings - Fork 15
Tricks
Tobias Pape edited this page Jul 20, 2015
·
7 revisions
- Get constant selector name in VM as Smalltalk symbol: add to
Constants.SIMULATION_SELECTORS
and a field with that name will be available in object space - Build with a different GC and no JIT:
python .build/build.py -O2 --gc=generation
- Run in interpreted mode with pypy:
PYTHONPATH=pypy:rsdl pypy targetrsqueak.py -t images/Squeak4.6-vmmaker.1.image
- Set break point for interpreted mode:
import pdb; pdb.set_trace()
- Look for this line at the end of the build process:
[translation:info] written: /var/folders/c_/77lk4k657w5gzk7mfckmll6c0000gn/T/usession-default-129/testing_1/testing_1.c
- Change Makefile and add flag
-arch i386
toDEBUGFLAGS
- Run
make clean
andmake debug -j8
(8 cores) - Run VM:
sudo gdb --args ./rsqueak images/Squeak4.6-vmmaker.1.image
- Check if running on RSqueak.
isRSqueak
< primitive: 'isRSqueak' module: 'VMDebugging' >
^ false
- To test the mini.image in a different VM, use Squeak 4.2.5 (Mac), 4.4.7 or 3.3.7 (Unix)
The debugger is broken at the moment, because of issues with weak dictionary. Use this workaround for the moment.
DebuggerMethodMap class>>voidMapCache
self protected: [
MapCache := IdentityDictionary new.
MapCacheEntries := 16 ]
Then initialize classes again.
DebuggerMethodMap cleanUp.
DebuggerMethodMapForBlueBookMethods cleanUp.
DebuggerMethodMapForClosureCompiledMethods cleanUp.