Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Frequently access violation in DolphinVM006.DLL

70 views
Skip to first unread message

klausk

unread,
May 11, 2013, 4:52:11 AM5/11/13
to
Hi Community,

I am suffering from Dolphin crashes. My version is Dolphin Prof 6.1 Beta 2.
I tried to run it beneath Win 7 Prof 64, in compatibilty mode, in Win XP Prof and in an VMware 8 XP. All the same. I also rebuilded the image (that helps for some weeks)

The stack dump is always like this:

********************************************************************************
************************** Dolphin Crash Dump Report ***************************

10:22:16, 11.05.2013: Dolphin.exe caused an unhandled Win32 Exception C0000005
at 1000105E in module 10000000 (C:\Programme\Object Arts\Dolphin Smalltalk 6.1\DolphinVM006.DLL)

*----> Exception Parameters <----*
00000001
02B2FFFC

*----> CPU Context for thread 0x150 <----*
EAX = FFFFFFFF EBX = 0CFE031C ECX = 02B30000
ESI = 03621040 EDI = 003F76A8 EIP = 1000105E
ESP = 00C0FD18 EBP = 00C0FD70 EFL = 00010247
CS = 001B SS = 0023 DS = 0023
ES = 0023 FS = 003B GS = 0000

*----> VM Context <----*
Process: {0CFE0004:size 205 words, suspended frame 0CFE0321, priority 1, callbacks 0
last failure 0:nil, FPE mask 3, thread 00000000}
Active Method: Object>>primitiveFailed
IP: 003F76A8 (0)
SP: 0CFE0348
BP: 0CFE031C (183)
ActiveFrame: {0CFE0320: cf 0CFE0301, sp 00000000, bp 0CFE031C, ip 0, SmallInteger(Object)>>primitiveFailed}
receiver: 108986738
stack temp[0]: nil


New Method: Object>>primitiveFailed
Message Selector: primitiveFailed

*----> Stack Back Trace <----*
{0CFE0320: cf 0CFE0301, sp 00000000, bp 0CFE031C, ip 0, SmallInteger(Object)>>primitiveFailed}
receiver: 108986738
stack temp[0]: nil

{0CFE0300: cf 0CFE02E5, sp 0CFE0314, bp 0CFE02FC, ip 2, SmallInteger(MemoryManager)>>primCollectGarbage:}
receiver: 108986738
arg[0]: a MemoryManager

{0CFE02E4: cf 0CFE02C9, sp 0CFE02F4, bp 0CFE02E4, ip 7, MemoryManager>>collectGarbage}
receiver: a MemoryManager

{0CFE02C8: cf 0CFE02A5, sp 0CFE02DC, bp 0CFE02C0, ip 23, MemoryManager>>aboutToIdle}
receiver: a MemoryManager
stack temp[0]: 559141
stack temp[1]: 15060

{0CFE02A4: cf 0CFE0289, sp 0CFE02B8, bp 0CFE02A4, ip 4, InputState>>idle}
receiver: a InputState

{0CFE0288: cf 0CFE026D, sp 0CFE029C, bp 0CFE0288, ip 7, InputState>>idleLoop}
receiver: a InputState

{0CFE026C: cf 0CFE0251, sp 0CFE0280, bp 0CFE026C, ip 23, [] in InputState>>forkIdler}
receiver: a InputState

{0CFE0250: cf 0CFE0235, sp 0CFE0264, bp 0CFE0250, ip 13, ExceptionHandler(ExceptionHandlerAbstract)>>markAndTry}
receiver: a ExceptionHandler

{0CFE0234: cf 0CFE020D, sp 0CFE0248, bp 0CFE0230, ip 22, [] in ExceptionHandler(ExceptionHandlerAbstract)>>try:}
receiver: a ExceptionHandler

{0CFE020C: cf 0CFE01ED, sp 0CFE0220, bp 0CFE0208, ip 18, BlockClosure>>ifCurtailed:}
receiver: [] @ 0 in nil
arg[0]: [] @ 39 in ExceptionHandlerAbstract>>try:

{0CFE01EC: cf 0CFE01C9, sp 0CFE0200, bp 0CFE01E4, ip 3, BlockClosure>>ensure:}
receiver: [] @ 17 in ExceptionHandlerAbstract>>try:
arg[0]: [] @ 39 in ExceptionHandlerAbstract>>try:
stack temp[0]: nil

{0CFE01C8: cf 0CFE01A1, sp 0CFE01DC, bp 0CFE01BC, ip 44, ExceptionHandler(ExceptionHandlerAbstract)>>try:}
receiver: a ExceptionHandler
arg[0]: [] @ 22 in InputState>>forkIdler
stack temp[0]: a ExceptionHandler
stack temp[1]: a Process('Idler' base 0CFE0000 [ACTIVE] in Object>>primitiveFailed sp=00000000 ip=0 list=02D30010)
env temp[0]: nil

{0CFE01A0: cf 0CFE017D, sp 0CFE01B4, bp 0CFE0198, ip 7, BlockClosure>>on:do:}
receiver: [] @ 22 in InputState>>forkIdler
arg[0]: a Signal
arg[1]: [] @ 32 in InputState>>forkIdler

{0CFE017C: cf 0CFE0159, sp 0CFE0190, bp 0CFE017C, ip 41, [] in InputState>>forkIdler}
receiver: a InputState

{0CFE0158: cf 0CFE0139, sp 0CFE016C, bp 0CFE0154, ip 18, BlockClosure>>ifCurtailed:}
receiver: [] @ 0 in nil
arg[0]: [] @ 49 in InputState>>forkIdler

{0CFE0138: cf 0CFE011D, sp 0CFE014C, bp 0CFE0138, ip 60, [] in InputState>>forkIdler}
receiver: a InputState

{0CFE011C: cf 0CFE0101, sp 0CFE0130, bp 0CFE011C, ip 13, ExceptionHandler(ExceptionHandlerAbstract)>>markAndTry}
receiver: a ExceptionHandler

{0CFE0100: cf 0CFE00D9, sp 0CFE0114, bp 0CFE00FC, ip 22, [] in ExceptionHandler(ExceptionHandlerAbstract)>>try:}
receiver: a ExceptionHandler

{0CFE00D8: cf 0CFE00B9, sp 0CFE00EC, bp 0CFE00D4, ip 18, BlockClosure>>ifCurtailed:}
receiver: [] @ 0 in nil
arg[0]: [] @ 39 in ExceptionHandlerAbstract>>try:

{0CFE00B8: cf 0CFE0095, sp 0CFE00CC, bp 0CFE00B0, ip 3, BlockClosure>>ensure:}
receiver: [] @ 17 in ExceptionHandlerAbstract>>try:
arg[0]: [] @ 39 in ExceptionHandlerAbstract>>try:
stack temp[0]: nil

{0CFE0094: cf 0CFE006D, sp 0CFE00A8, bp 0CFE0088, ip 44, ExceptionHandler(ExceptionHandlerAbstract)>>try:}
receiver: a ExceptionHandler
arg[0]: [] @ 8 in InputState>>forkIdler
stack temp[0]: nil
stack temp[1]: a Process('Idler' base 0CFE0000 [ACTIVE] in Object>>primitiveFailed sp=00000000 ip=0 list=02D30010)
env temp[0]: nil

{0CFE006C: cf 0CFE0049, sp 0CFE0080, bp 0CFE0064, ip 7, BlockClosure>>on:do:}
receiver: [] @ 8 in InputState>>forkIdler
arg[0]: ProcessTermination
arg[1]: [] @ 13 in BlockClosure>>newProcess

{0CFE0048: cf 00000001, sp 0CFE005C, bp 0CFE0048, ip 17, [] in BlockClosure>>newProcess}
receiver: [] @ 8 in InputState>>forkIdler

<Bottom of stack>

bruno.b...@gmail.com

unread,
May 11, 2013, 11:21:20 AM5/11/13
to
Hi,

Do know how to reproduce this error ?

Regards,
Bruno

Chris Uppal

unread,
May 12, 2013, 5:08:47 AM5/12/13
to
klausk wrote:

> I am suffering from Dolphin crashes. My version is Dolphin Prof 6.1 Beta
> 2.
> I tried to run it beneath Win 7 Prof 64, in compatibilty mode, in Win XP
> Prof and in an VMware 8 XP. All the same. I also rebuilded the image
> (that helps for some weeks)

Since it happens on a wide variety of OSs, and also goes away for a while when
you revert to a clean image, it sounds as if something you are doing is
corrupting the heap in some way. The most likely culprit is some external
method somewhere. Possibly it is passing a pointer to a Dolphin object that
gets GCed before the external code has finished using it.

I can't suggest a good way to track it down when it's so infrequent. You may
be able to correlate using some package that connects to external DLLs with the
crashes (anything you've done in the last 10 minutes or so is particularly
suspect). If not then all I can think of is for you to try to track it down
by elmination.

-- chris


klausk

unread,
May 18, 2013, 3:57:37 AM5/18/13
to
Hi,

thank you for your answers.

I did a deeper search for that dll here and found a post regarding "oneWayBecome". In my application, I thought it is a good idea to refresh the Screen Contents by this. Every time an instance has been changed a method went through all Screens and oneWayBecomed instances of the same class and id.

After changing this into search and reload from DB Dolphin runs stable now.

So I can say that this multiple times using the same pointer to object somehow weird the garbage colector.

Cheers,
Klaus
0 new messages