|
Hi,
Thanks Igor, Mariano, and David for your suggestions.
I have recompiled the VM with debug on.
I got this in gdb (crashes right after (ProcessorScheduler classPool
at: #BackgroundProcess) terminate. is executed)
The output shown right before the first entry in the interpreter in
event-driven mode, that is, after the first longjmp and return.
heartbeat
heartbeat
heartbeat
enter interpreter
(stackPageFor((page->baseFP))) == page 17826
(stackPageFor((page->headSP))) == page 17829
(((page->nextPage)->prevPage)) == page 17822
!(((page->baseFP)) == 0) 17825
(((page->nextPage)->prevPage)) == page 17822
(stackPageFor((page->baseFP))) == page 17826
(stackPageFor((page->headSP))) == page 17829
Program received signal SIGSEGV, Segmentation fault.
0x08074e71 in pageListIsWellFormed ()
at /home/dima/src/cogvm/dmg-blessed/src/vm/gcc3x-interp.c:17822
17822 if (!(asserta((((page->nextPage)->prevPage))
== page))) {
(gdb) where
#0 0x08074e71 in pageListIsWellFormed ()
at /home/dima/src/cogvm/dmg-blessed/src/vm/gcc3x-interp.c:17822
#1 0x0806800f in checkForEventsMayContextSwitch (mayContextSwitch=1)
at /home/dima/src/cogvm/dmg-blessed/src/vm/gcc3x-interp.c:8807
#2 0x0806df9a in handleStackOverflowOrEventAllowContextSwitch
(mayContextSwitch=1)
at /home/dima/src/cogvm/dmg-blessed/src/vm/gcc3x-interp.c:13052
#3 0x0806187e in L0internalActivateNewMethod ()
at /home/dima/src/cogvm/dmg-blessed/src/vm/gcc3x-interp.c:4605
#4 0x0809740f in main (argc=2, argv=0xbffff014, envp=0xbffff020)
at /home/dima/src/cogvm/dmg-blessed/platforms/unix/vm/sqUnixEvtMain.c:1761
(gdb)
And these page numbers in assert messages are not random, they repeat
every time the VM runs.
Thanks.
--
Dimitry Golubovsky
Anywhere on the Web
|