Re[2]: Squeak crashes on MacOS on Intel Mac

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Re[2]: Squeak crashes on MacOS on Intel Mac

efimov
Hello, John.

it is squeak. but i changed CFBundleIdentifier in Info.plist. so i had this info in loger.
About Squeak.
Squeak VM version: 3.7-7 #1 Sat Mar 19 13:23:20 PST 2005 gcc 3.3
Built from: Squeak3.7 of '4 September 2004' [latest update: #5989]
Build host: Darwin emilia.local 7.8.0 Darwin Kernel Version 7.8.0: Wed Dec 22 14:26:17 PST 2004;
root:xnu/xnu-517.11.1.obj~1/RELEASE_PPC  Power Macintosh powerpc
default plugin location: /usr/local/lib/squeak/3.7-7/*.so

i used OSProcess. I tried VM 3.8.15beta1U but it does not work at all.
this VM works correct on PPC, but on Intel Mac OSProcess does not work.
on Intel Mac this VM not staible. for exemple last log was:
Thread 0 Crashed:
0   org.squeak.Squeak      0xb8080c47 0xb8000000 + 527431
1   org.squeak.Squeak      0xb807b116 0xb8000000 + 504086
2   org.squeak.Squeak      0xb808f47a 0xb8000000 + 586874
3   org.squeak.Squeak      0xb80e3e1d spin_lock_wrapper + 2799

Thread 1:
0   org.squeak.Squeak      0xb81f2deb strchr + 72
1   org.squeak.Squeak      0xb818e52a pthread_cond_wait + 3114
2   org.squeak.Squeak      0xb812a9b0 catch_exception_raise_state_identity + 320
3   org.squeak.Squeak      0xb8129eda CallPPCFunctionAtAddressInt + 174780
4   org.squeak.Squeak      0xb8129dd1 CallPPCFunctionAtAddressInt + 174515
5   org.squeak.Squeak      0xb812aaae catch_exception_raise_state_identity + 574
6   org.squeak.Squeak      0xb81c3f0c pthread_create + 1124

Thread 2:
0   org.squeak.Squeak      0xb80f8159 spin_lock_wrapper + 85547
1   org.squeak.Squeak      0xb8106d5a CallPPCFunctionAtAddressInt + 31036
2   org.squeak.Squeak      0xb809a35e 0xb8000000 + 631646

Thread 0 crashed with i386 Thread State:
eax: 0x00000009    ebx: 0xb8080c1e ecx:0x00000010 edx: 0x00000010
edi: 0x00000010    esi: 0x00000000 ebp:0xb7fffa08 esp: 0xb7fff9d0
 ss: 0x0000002f    efl: 0x00010206 eip:0xb8080c47  cs: 0x00000027
 ds: 0x0000002f     es: 0x0000002f  fs:0x00000000  gs: 0x00000037


so i need VM for Intel Mac. or instruction how i can build it.
or my be, do you have native VM for Intel Mac? i suggest VM 3.7
unix-mac is ok, but unfortunaly there are not this VM for Intel Mac
in repository.

Thank you.
--
Best regards,
 Danil                          mailto:[hidden email]

> (a)
>         com.key-soft.AudioSkape
>         That is not Squeak code

> (b)     this is the unix vm, is it compiled for powerpc, macintel, or
> universal?

> (c)  CallPPCFunctionAtAddressInt   Jumping from macintel to powerpc  
> code? Well endian issues lurk perhaps.


> On Apr 17, 2007, at 7:51 AM, efimov wrote:

>> Hello, .
>> Hello, squeak-dev,
>>
>> Squeak crashes on MacOS on Intel Mac. That's a fact. I attach a part
>> of backtrace.
>>
>> Thread 1:
>> 0   com.key-soft.AudioSkape      0xb81f2deb strchr + 72
>> 1   com.key-soft.AudioSkape      0xb818e52a pthread_cond_wait + 3114
>> 2   com.key-soft.AudioSkape      0xb812a9b0  
>> catch_exception_raise_state_identity + 320
>> 3   com.key-soft.AudioSkape      0xb8129eda  
>> CallPPCFunctionAtAddressInt + 174780
>> 4   com.key-soft.AudioSkape      0xb8129dd1  
>> CallPPCFunctionAtAddressInt + 174515
>> 5   com.key-soft.AudioSkape      0xb812aaae  
>> catch_exception_raise_state_identity + 574
>> 6   com.key-soft.AudioSkape      0xb81c3f0c pthread_create + 1124
>>
>> Thread 2:
>> 0   com.key-soft.AudioSkape      0xb80f8159 spin_lock_wrapper + 85547
>> 1   com.key-soft.AudioSkape      0xb8106d5a  
>> CallPPCFunctionAtAddressInt + 31036
>> 2   com.key-soft.AudioSkape      0xb809a35e 0xb8000000 + 631646
>>
>> Thread 0 crashed with i386 Thread State:
>> eax: 0xbf7fe008    ebx: 0xb80f9bee ecx:0xbf7fe00c edx: 0xbf80e00c
>> edi: 0xbf80e00c    esi: 0x82184a00 ebp:0x8082ab18 esp: 0x8082ab18
>>  ss: 0x0000002f    efl: 0x00010282 eip:0xb806812f  cs: 0x00000027
>>  ds: 0x0000002f     es: 0x0000002f  fs:0x00000000  gs: 0x00000037
>>
>>
>> Intel Core Solo   Mac OS X 10.4.5
>> Squeak VM version 3.7-7
>>
>>
>> the same code runs ok on G4.
>> PowerPC G4   Mac OS X 10.4.6, Squeak VM version 3.7-7.
>>
>> do you have any ideas?
>>
>> Thank you.
>> --
>> Best regards,
>>  Danil                          mailto:[hidden email]
>>
>>
>>

> --
> ========================================================================
> ===
> John M. McIntosh <[hidden email]>
> Corporate Smalltalk Consulting Ltd.
> http://www.smalltalkconsulting.com
> ========================================================================
> ===



Reply | Threaded
Open this post in threaded view
|

Re: Re[2]: Squeak crashes on MacOS on Intel Mac

johnmci

On Apr 18, 2007, at 12:41 PM, efimov wrote:

> Hello, John.
>
> or my be, do you have native VM for Intel Mac? i suggest VM 3.7
> unix-mac is ok, but unfortunaly there are not this VM for Intel Mac
> in repository.

Can't help with unix macintel vm.


Did you try a mac carbon VM 3.8.15b6 VM from

ftp.smalltalkconsulting.com

and use the UnixOSProcessPlugin.4.0.1.bundle   ?


If you used 3.8.15b1 lets see well lots of changes for browser  
support, some fixes. Do you have a crash dump
from the 3.8.15b1 trial using UnixOSProcessPlugin.bundle 4.0.1?


3.8.16b5 Squeak3d logic did not swap bytes corrrectly for macintel.  
Add parm to config.h and compiler.

3.8.16b4 sqMacSecurity.c Oops get external char [] wrong and why it  
crashes on strcpy...

3.8.16b3 Changed SqueakBrowserUntrustedDirectory info.plist to  
SqueakUntrustedDirectory and added SqueakTrustedDirectory.
                       
                        sqMacMain.c warning msg cleanup, add logic to get  
gSqueakTrustedDirectoryName

                        sqMacSecurity.c Rework how trusted directory is made, always make  
from info.plist entry, versus old unix hack.
                                                        warning msg cleanup.
3.8.16b2
                        sqMacUIEventsUniversal.c  Bug fix, optimized out stale screen  
flushing.
                        experimental, pulled, had bug where asking for vmParm < 0 or >2 <  
1000 or 1201 or 1202
                        would give uuid back, oops

3.8.15b8<<<>>>>browser plugin
                       
                        Fixed issue where when we go to setup the shared memory region the  
file name is not random enough, thus
                        if timing is right you end up sharing the same shared memory  
region if you run Safari and FireFox at the
                        same time. That gave one of our testers interesting visual side  
effects.

                        Fixed window draw issue in Safari, would blank Safari window to  
white, then not redraw properly, have to follow os-9
                        rules for updatewindow logic on a update window request.

                        Update cursor logic so that moving out of the plugin window  
restores the cursor, moving back in
                        sets the special squeak cursor.

                        Don't pass activate or update events to the VM, activate is  
pointless, update is handled internally, we can draw
                        the screen according to the clip area.

                        Finally make pipe to VM non-blocking, if we get a EAGAIN, we try  
20 times then give up. This solves the issue when
                        a person uses the Quit Button in the plugin and stops the VM from  
running. Of course the screen is not updated now
                        but we still retain control of the cursor,keyboard  so you can  
reload the etoy application via the browser. Before Safari
                        would lockup trying to send data to the non-existant VM.

3.8.16b1 Revision to 3.8.16 because of adding browser full screen  
support
               
                        sqMacMain.c on exit reset menu bar if was headless, browser,  
and went full screen
                       
                        sqMacNSPluginUILogic2.c add helper methods for when in browser  
mode and gone full screen, also
                                                                        then ignore cmds from browser when in full screen mode.
                       
                        sqMacNSPluginUILogic2.h header changes

                        sqMacUIEvents.h Add missing RunApplicationEventLoopWithSqueak  
declare

                        sqMacUIEventsUniversal.c When running full screen in browser mode,  
we need to consider application activation,
                                                                        deactivation, mouse cursor enter/leave,  
gSqueakBrowserMouseMappings versus
                                                                        gSqueakMouseMappings, screen flushing

                        sqMacWindowUniversal.c On going full screen we need to fix the  
menu bar, show the window, ensure window
                                                                        context is set correctly, send bits to the window, versus  
browser, flip squeak to
                                                                        the foreground, and ensure cursor sets go to the foreground  
versus the browser.
                                               
                                                                        On leaving full screen, we must flip to the browser, and  
hide the window.


3.8.15b8   sqMacNSPluginUILogic2.c Alter shared memory include 20  
more bytes to
                                                                        indicate a drawing request and the co-ordinates versus using  
the pipe.
                       
                        sqMacNSPluginUILogic2.h structure added.
                       
                        sqMacUIEventsUniversal.c Do not flush hidden squeak window,  
pointless when running in browser mode.

                        sqMacWindowUniversal.c Do not flush hidden squeak window,  
pointless when running in browser mode.
                                                                        Alter browser screen update logic, use shared memory to  
indicate a draw is
                                                                        needed and where. Later when we come back to draw the next  
frame, if the
                                                                        pending draw is not done yet, we wait 1 second in a phtread  
pause loop in 10 ms
                                                                        increments. This ensures we do not overrun the ability of  
the browser to draw frames

3.8.15b7 Was test version, not widely distributed.

3.8.15b6 sqMacUIEventsUniversal.c add logic to swap global to local  
on mouse point on demand.

                        sqMacNSPluginUILogic2.c add logic to avoid swapping local mouse  
point from browser
                                                                        to global and back

                        npsqueak.c (3.8.15b1) remove aio logic, remove 10.4 only  
CGimageFromImageRect
                                                                        cleanup, test on safari and firefox for proper rendering and  
clipping
                                                                        when scrolled and placed in arbitrary frame.

3.8.15b5
                        squeakBrowser-info.plist add SqueakDebug parm (1) debug msgs, (0)  
no debug msgs

                        npsqueak.c streamline context usage a bit, make local var versus  
on structure
                                                        add logic to print msgs based on info.plist

                        sqMacMain.c Add SqueakDebug parm (1) debug msgs, (0) no debug msgs
                                                        debug messages for browser interface, and module loading
                                                        Add SqueakQuitOnQuitAppleEvent, true if we should quit  
immediately if
                                                        operating system sends us quit msg, as a result of logout.  
Normally false.

                        sqMacUIAppleEvents.c If you logout we get a quit apple event msg,  
normally we ignore,
                                                        unless SqueakQuitOnQuitAppleEvent is set.

                        sqMacUIEventsUniversal.c  If the user picks edit menu, item one,  
actually check to see if
                                                        the string is "Quit do not save", if so then quit, otherwise  
pass revised menu
                                                        choice to Smalltalk.

                        sqMacUnixExternalPrims.c Look to SqueakDebug for msg printing

               
                        sqMacWindowUniversal.c Look to SqueakDebug for msg printing, mind  
file does not print any msgs yet
                                               
3.8.15b4
                        sqMacUnixFileInterface.c
                                Memory leak issue,  PathToFileViaFSRef  was not freeing mutable  
string.
                                        Free nav services dialog, cleanup  that routine a bit more.
                        sqMacEncoding.c
                                Memory leak issue, SetImageNameViaCFString not freeing  
imageNameString

                        sqMacMain.c
                                Add cocoInterfaceForTilda to invoke cocoa interface properly for  
tilda resolving, to avoid
                                msg in console log about forgetting to free nsstring.
                       
                        sqMacNSPluginUILogic2.c
                                Ensure SharedBrowserBitMapContextRef is freed early in process of  
rebuilding to minimize
                                race conditions.

                        sqMacWindowUniversal.c
                                In ioShowDisplayOnWindow be a bit more paranoid if drawing  
surface exists.
                                In copy124BitsTheHardWay, cleanup a bit because of a bug Bert  
found where in a browser
                                headless app the virtual window size is changed. however the  
original code asks the hidden
                                window what it's size is after being resized, but the VM has  
already see the new size, so copy124BitsTheHardWay is using stale  
information, and we're hosed. Really we want to
                                use information from the ioShowDisplayOnWindow about the drawing  
size, and ignore what
                                size the window is because that's not important.

3.8.15b3
                        sqMacUnixFileInterface.c
                                If you passed in an bad file path, say with incorrect encoding,  
then in convertChars
                                we would try to convert to UTF8, that would fail, but no check so  
code to do the
                                normalization would crash the VM

                        Cursor support change for Impara. Need the ability to change the  
cursor back to normal cursor
                        when we exit the window, or the application. Then when we re-enter  
the application or window
                        it should flip back to the cursor that was being used by Squeak  
when we exited.

                        sqMacHostWindow.c
                               
                                Add CreateMouseTrackingRegion() logic, add call in closeWindow to  
ReleaseMouseTrackingRegion
                                In ioSizeOfWindowSetxy call back to reset tracking region size.
                       
                        sqMacHostWindow.h
                                Add windowTrackingRef to window descriptor block

                        sqMacMain.c
                                Version number, and uuid change

                        sqMacUIEventsUniversal.c
                                When we setup events for window call logic to start mouse region  
tracking
                                Add mouse enter/leave logic
                                On application activate/deactivate need to set squeak cursor or  
initcursor
                                Add kEventWindowResizeCompleted to trigger rebuild of mouse  
tracking region
                                Add kEventMouseEntered and kEventMouseExited to handle cursor change
               

                                BUG FIX, deal with mouse move and button state, if you had an  
apple super mouse
                                you would have noticed if the mouse button was down, and you  
moved the scroll wheel
                                it would think the mouse when up, because we forgot to return  
cached mouse button state. Oops.
                                BUG was introduced in 3.8.12.b7

                        SqMacWindowUniversal.c
                                Add logic to remember cursor on cursor change and set flag if  
squeak had change cursor.


3.8.15b2 had limited release



--
========================================================================
===
John M. McIntosh <[hidden email]>
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
========================================================================
===