Unable to deploy to an executable again

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

Unable to deploy to an executable again

Joseph Frippiat
When I try to deploy my new application to an executable, Dolphin shows
the message "The application may be dependent upon non-distributable
development tools or classes in the following packages: Development
System ...".  Sometimes, Dolphin is able to produce an executable but
the executable can not be run : it takes nearly 100% of the CPU time for
several minutes and the main view never appears.

I know from the past that I will not be able to deploy correctly until I
get rid of this dependency, but how to do that ?

The only prerequisite my application has on the Development System is
the following:

Owned: LedView class>>publishedAspectOfInstances
Dependency: references global
Prerequisite Object: Aspect

Is it really illegal ?
How to circumvent it and finally deploy my application ?

I use Dolphin Smalltalk Professional 6.02 and I try to deploy from a
fresh, clean, image.

Thanks,

Joseph


Reply | Threaded
Open this post in threaded view
|

Re: Unable to deploy to an executable again

Chris Uppal-3
Joseph Frippiat wrote:

> Owned: LedView class>>publishedAspectOfInstances
> Dependency: references global
> Prerequisite Object: Aspect
>
> Is it really illegal ?
> How to circumvent it and finally deploy my application ?

If you haven't already, then try putting that method into category
'development' or 'must strip' (or both)   That tells the stripper that the
method must be removed, and thus (hopefully) removes the dependency on Aspect.

I sort of doubt whether that will solve your problem, but it's worth doing
anyway, and it /might/ fix it.  Fingers crossed ;-)

    -- chris


Reply | Threaded
Open this post in threaded view
|

Re: Unable to deploy to an executable again

Joseph Frippiat-2
Chris Uppal wrote:
> If you haven't already, then try putting that method into category
> 'development' or 'must strip' (or both)   That tells the stripper that the
> method must be removed, and thus (hopefully) removes the dependency on Aspect.

Thanks, it removes the Development System dependency and Dolphin stops
complaining, but the executable is not runnable.  It takes nearly 100%
of CPU and when I kill it I get a huge ERRORS file.

Here is the start of the file:


************************** Dolphin Virtual Machine Dump Report
***************************

17:06:50 PM, 6/1/2006: Primitive Process>>primTerminate failed (0)

*----> VM Context <----*
Process: {090D0004:size 76 words, suspended frame 00E60010, priority 6,
callbacks 0
last failure 0:nil, FPE mask 3, thread nil}
Active Method: SessionManager>>logError:
IP: 08F863C9 (9)
SP: 090D0214
BP: 090D01E8 (106)
ActiveFrame: {090D01EC: cf 090D01CD, sp 090D0204, bp 090D01E8, ip 5,
RemoteMonitoringSessionManager(SessionManager)>>logError:}
        receiver: a RemoteMonitoringSessionManager
        arg[0]: a Error


New Method: VMLibrary>>dump:path:stackDepth:walkbackDepth:
Message Selector: dump:path:stackDepth:walkbackDepth:

*----> Stack Back Trace <----*
{090D01EC: cf 090D01CD, sp 090D0204, bp 090D01E8, ip 5,
RemoteMonitoringSessionManager(SessionManager)>>logError:}
        receiver: a RemoteMonitoringSessionManager
        arg[0]: a Error

{090D01CC: cf 090D01AD, sp 090D01E0, bp 090D01C8, ip 3,
RemoteMonitoringSessionManager(SessionManager)>>unhandledException:}
        receiver: a RemoteMonitoringSessionManager
        arg[0]: a Error

{090D01AC: cf 090D018D, sp 090D01C0, bp 090D01A8, ip 3,
RemoteMonitoringSessionManager(SessionManager)>>onUnhandledError:}
        receiver: a RemoteMonitoringSessionManager
        arg[0]: a Error

{090D018C: cf 090D0171, sp 090D01A0, bp 090D018C, ip 5,
Error>>defaultAction}
        receiver: a Error

{090D0170: cf 090D013D, sp 090D0184, bp 090D0158, ip 55,
Error(Exception)>>_propagateFrom:}
        receiver: a Error
        arg[0]: nil
        stack temp[0]: nil
        stack temp[1]: nil
        stack temp[2]: nil
        stack temp[3]: a Process('Main' base 090D0000 [ACTIVE] in
SessionManager>>logError: sp=00000000 ip=4 list=00E60010)
        stack temp[4]: nil

{090D013C: cf 090D011D, sp 090D0150, bp 090D0138, ip 6,
Error(Exception)>>_propagate}
        receiver: a Error
        stack temp[0]: nil

{090D011C: cf 090D0101, sp 090D0130, bp 090D011C, ip 11,
Error(Exception)>>signal}
        receiver: a Error

{090D0100: cf 090D00E1, sp 090D0114, bp 090D00FC, ip 5,
Error(Exception)>>signal:}
        receiver: a Error
        arg[0]: 'Primitive Process>>primTerminate failed (0)'

{090D00E0: cf 090D00C1, sp 090D00F4, bp 090D00DC, ip 5, Error
class(Exception class)>>signal:}
        receiver: Error
        arg[0]: 'Primitive Process>>primTerminate failed (0)'

{090D00C0: cf 090D00A1, sp 090D00D4, bp 090D00BC, ip 4,
Process(Object)>>error:}
        receiver: a Process('Main' base 090D0000 [ACTIVE] in
SessionManager>>logError: sp=00000000 ip=4 list=00E60010)
        arg[0]: 'Primitive Process>>primTerminate failed (0)'

{090D00A0: cf 090D0081, sp 090D00B4, bp 090D009C, ip 21,
Process(Object)>>primitiveFailed}
        receiver: a Process('Main' base 090D0000 [ACTIVE] in
SessionManager>>logError: sp=00000000 ip=4 list=00E60010)
        stack temp[0]: a Process('Main' base 090D0000 [ACTIVE] in
SessionManager>>logError: sp=00000000 ip=4 list=00E60010)

{090D0080: cf 090D0065, sp 090D0094, bp 090D0080, ip 7,
Process>>primTerminate}
        receiver: a Process('Main' base 090D0000 [ACTIVE] in
SessionManager>>logError: sp=00000000 ip=4 list=00E60010)

{090D0064: cf 090D0049, sp 090D0078, bp 090D0064, ip 15,
Process>>shutdown}
        receiver: a Process('Main' base 090D0000 [ACTIVE] in
SessionManager>>logError: sp=00000000 ip=4 list=00E60010)

{090D0048: cf 00000001, sp 090D005C, bp 090D0048, ip 21, [] in
BlockClosure>>newProcess}
        receiver: [] @ 10 in InputState>>forkMain

<Bottom of stack>

***** End of dump *****


************************** Dolphin Virtual Machine Dump Report
***************************

17:06:50 PM, 6/1/2006: UndefinedObject does not understand #asInteger

*----> VM Context <----*
Process: {090D0004:size 207 words, suspended frame 00E60010, priority
6, callbacks 0
last failure 2:nil, FPE mask 3, thread nil}
Active Method: SessionManager>>logError:
IP: 08F863C9 (9)
SP: 090D0420
BP: 090D03F4 (237)
ActiveFrame: {090D03F8: cf 090D03D9, sp 090D0410, bp 090D03F4, ip 5,
RemoteMonitoringSessionManager(SessionManager)>>logError:}
        receiver: a RemoteMonitoringSessionManager
        arg[0]: a MessageNotUnderstood


New Method: VMLibrary>>dump:path:stackDepth:walkbackDepth:
Message Selector: dump:path:stackDepth:walkbackDepth:

*----> Stack Back Trace <----*
{090D03F8: cf 090D03D9, sp 090D0410, bp 090D03F4, ip 5,
RemoteMonitoringSessionManager(SessionManager)>>logError:}
        receiver: a RemoteMonitoringSessionManager
        arg[0]: a MessageNotUnderstood

{090D03D8: cf 090D03B9, sp 090D03EC, bp 090D03D4, ip 3,
RemoteMonitoringSessionManager(SessionManager)>>unhandledException:}
        receiver: a RemoteMonitoringSessionManager
        arg[0]: a MessageNotUnderstood

{090D03B8: cf 090D0399, sp 090D03CC, bp 090D03B4, ip 3,
RemoteMonitoringSessionManager(SessionManager)>>onUnhandledError:}
        receiver: a RemoteMonitoringSessionManager
        arg[0]: a MessageNotUnderstood

{090D0398: cf 090D037D, sp 090D03AC, bp 090D0398, ip 5,
MessageNotUnderstood(Error)>>defaultAction}
        receiver: a MessageNotUnderstood

{090D037C: cf 090D0349, sp 090D0390, bp 090D0364, ip 55,
MessageNotUnderstood(Exception)>>_propagateFrom:}
        receiver: a MessageNotUnderstood
        arg[0]: nil
        stack temp[0]: nil
        stack temp[1]: nil
        stack temp[2]: nil
        stack temp[3]: a Process('Main' base 090D0000 [ACTIVE] in
SessionManager>>logError: sp=00000000 ip=4 list=00E60010)
        stack temp[4]: nil

{090D0348: cf 090D0329, sp 090D035C, bp 090D0344, ip 6,
MessageNotUnderstood(Exception)>>_propagate}
        receiver: a MessageNotUnderstood
        stack temp[0]: nil

{090D0328: cf 090D030D, sp 090D033C, bp 090D0328, ip 11,
MessageNotUnderstood(Exception)>>signal}
        receiver: a MessageNotUnderstood

{090D030C: cf 090D02E9, sp 090D0320, bp 090D0304, ip 12,
MessageNotUnderstood class>>receiver:message:}
        receiver: MessageNotUnderstood
        arg[0]: nil
        arg[1]: Message selector: asInteger arguments: ***Bad Array: 00000000

{090D02E8: cf 090D02C9, sp 090D02FC, bp 090D02E4, ip 4,
Object>>doesNotUnderstand:}
        receiver: nil
        arg[0]: Message selector: asInteger arguments: ***Bad Array: 00000000

{090D02C8: cf 090D02A1, sp 090D02DC, bp 090D02BC, ip 10,
ByteArray>>retryDwordAtOffset:put:}
        receiver: a ByteArray
        arg[0]: 4
        arg[1]: nil
        stack temp[0]: nil

{090D02A0: cf 090D027D, sp 090D02B4, bp 090D0298, ip 4,
ByteArray>>dwordAtOffset:put:}
        receiver: a ByteArray
        arg[0]: 4
        arg[1]: nil

{090D027C: cf 090D025D, sp 090D0290, bp 090D0278, ip 6,
MSGBOXPARAMS>>hwndOwner:}
        receiver: a MSGBOXPARAMS
        arg[0]: nil

{090D025C: cf 090D020D, sp 090D0270, bp 090D0228, ip 73,
UserLibrary>>messageBox:text:caption:style:icon:instance:}
        receiver: a UserLibrary
        arg[0]: nil
        arg[1]: 'Primitive Process>>primTerminate failed (0)'
        arg[2]: 'Remote Monitoring'
        arg[3]: 16
        arg[4]: nil
        arg[5]: nil
        stack temp[0]: nil
        stack temp[1]: a MSGBOXPARAMS
        stack temp[2]: nil
        stack temp[3]: nil
        stack temp[4]: nil
        stack temp[5]: false
        stack temp[6]: nil

{090D020C: cf 090D01E9, sp 090D0220, bp 090D0204, ip 20,
Error(Exception)>>showMessage:style:}
        receiver: a Error
        arg[0]: 'Primitive Process>>primTerminate failed (0)'
        arg[1]: 16

{090D01E8: cf 090D01CD, sp 090D01FC, bp 090D01E8, ip 11,
Error(Exception)>>okToContinue}
        receiver: a Error

{090D01CC: cf 090D01AD, sp 090D01E0, bp 090D01C8, ip 6,
RemoteMonitoringSessionManager(SessionManager)>>unhandledException:}
        receiver: a RemoteMonitoringSessionManager
        arg[0]: a Error

{090D01AC: cf 090D018D, sp 090D01C0, bp 090D01A8, ip 3,
RemoteMonitoringSessionManager(SessionManager)>>onUnhandledError:}
        receiver: a RemoteMonitoringSessionManager
        arg[0]: a Error

{090D018C: cf 090D0171, sp 090D01A0, bp 090D018C, ip 5,
Error>>defaultAction}
        receiver: a Error

{090D0170: cf 090D013D, sp 090D0184, bp 090D0158, ip 55,
Error(Exception)>>_propagateFrom:}
        receiver: a Error
        arg[0]: nil
        stack temp[0]: nil
        stack temp[1]: nil
        stack temp[2]: nil
        stack temp[3]: a Process('Main' base 090D0000 [ACTIVE] in
SessionManager>>logError: sp=00000000 ip=4 list=00E60010)
        stack temp[4]: nil

{090D013C: cf 090D011D, sp 090D0150, bp 090D0138, ip 6,
Error(Exception)>>_propagate}
        receiver: a Error
        stack temp[0]: nil

{090D011C: cf 090D0101, sp 090D0130, bp 090D011C, ip 11,
Error(Exception)>>signal}
        receiver: a Error

{090D0100: cf 090D00E1, sp 090D0114, bp 090D00FC, ip 5,
Error(Exception)>>signal:}
        receiver: a Error
        arg[0]: 'Primitive Process>>primTerminate failed (0)'

{090D00E0: cf 090D00C1, sp 090D00F4, bp 090D00DC, ip 5, Error
class(Exception class)>>signal:}
        receiver: Error
        arg[0]: 'Primitive Process>>primTerminate failed (0)'

{090D00C0: cf 090D00A1, sp 090D00D4, bp 090D00BC, ip 4,
Process(Object)>>error:}
        receiver: a Process('Main' base 090D0000 [ACTIVE] in
SessionManager>>logError: sp=00000000 ip=4 list=00E60010)
        arg[0]: 'Primitive Process>>primTerminate failed (0)'

{090D00A0: cf 090D0081, sp 090D00B4, bp 090D009C, ip 21,
Process(Object)>>primitiveFailed}
        receiver: a Process('Main' base 090D0000 [ACTIVE] in
SessionManager>>logError: sp=00000000 ip=4 list=00E60010)
        stack temp[0]: a Process('Main' base 090D0000 [ACTIVE] in
SessionManager>>logError: sp=00000000 ip=4 list=00E60010)

{090D0080: cf 090D0065, sp 090D0094, bp 090D0080, ip 7,
Process>>primTerminate}
        receiver: a Process('Main' base 090D0000 [ACTIVE] in
SessionManager>>logError: sp=00000000 ip=4 list=00E60010)

{090D0064: cf 090D0049, sp 090D0078, bp 090D0064, ip 15,
Process>>shutdown}
        receiver: a Process('Main' base 090D0000 [ACTIVE] in
SessionManager>>logError: sp=00000000 ip=4 list=00E60010)

{090D0048: cf 00000001, sp 090D005C, bp 090D0048, ip 21, [] in
BlockClosure>>newProcess}
        receiver: [] @ 10 in InputState>>forkMain

<Bottom of stack>

***** End of dump *****


************************** Dolphin Virtual Machine Dump Report
***************************

17:06:50 PM, 6/1/2006: UndefinedObject does not understand #asInteger
etc ...

Thanks,

Joseph


Reply | Threaded
Open this post in threaded view
|

Re: Unable to deploy to an executable again

Schwab,Wilhelm K
jfripp wrote:
> Chris Uppal wrote:
>> If you haven't already, then try putting that method into category
>> 'development' or 'must strip' (or both)   That tells the stripper that the
>> method must be removed, and thus (hopefully) removes the dependency on Aspect.
>
> Thanks, it removes the Development System dependency and Dolphin stops
> complaining, but the executable is not runnable.  It takes nearly 100%
> of CPU and when I kill it I get a huge ERRORS file.

The first thing you should do is see whether Chris has a version of
Ghoul for D6.  It really helps in making sense of crash dumps.

My hunch after a quick skim of the dump is that you might have a message
box where it does not belong.  Search the archives of this group for
startup and MessageBox, and see if any of it sounds familiar.  IIRC, you
can make the box system modal, or you can arrange for the session to not
shut down while the box is displayed, or something like that.

Have a good one,

Bill


--
Wilhelm K. Schwab, Ph.D.
[hidden email]


Reply | Threaded
Open this post in threaded view
|

Re: Unable to deploy to an executable again

John Rubier
Bill Schwab wrote:

> jfripp wrote:
> > Chris Uppal wrote:
> >> If you haven't already, then try putting that method into category
> >> 'development' or 'must strip' (or both)   That tells the stripper that the
> >> method must be removed, and thus (hopefully) removes the dependency on Aspect.
> >
> > Thanks, it removes the Development System dependency and Dolphin stops
> > complaining, but the executable is not runnable.  It takes nearly 100%
> > of CPU and when I kill it I get a huge ERRORS file.
>
> The first thing you should do is see whether Chris has a version of
> Ghoul for D6.  It really helps in making sense of crash dumps.
>
> My hunch after a quick skim of the dump is that you might have a message
> box where it does not belong.  Search the archives of this group for
> startup and MessageBox, and see if any of it sounds familiar.  IIRC, you
> can make the box system modal, or you can arrange for the session to not
> shut down while the box is displayed, or something like that.
>
> Have a good one,
>
> Bill
>
>
> --
> Wilhelm K. Schwab, Ph.D.
> [hidden email]

Bill's recall is correct. I think this is the same problem that I and
several others have run into before. The program has an error during
startup when here is no UI windows and the default Dolphin error
handler uses UserLibrary>>messageBox:text:caption:style:icon:instance:
but not using the task modal style. The hWnd end up being nil. This
causes another error, tries to display a messagebox, failes...rinse,
repeat forever.
Just patching the method with something like
 hWnd ifNil: [hWnd := 0]
after the hWnd assignment at the beginning of the method should allow
the message box to appear.
Won't fix the error triggering this however ;)

John


Reply | Threaded
Open this post in threaded view
|

Re: Unable to deploy to an executable again

Joseph Frippiat-2
In reply to this post by Schwab,Wilhelm K
Bill Schwab wrote:

> My hunch after a quick skim of the dump is that you might have a message
> box where it does not belong.  Search the archives of this group for

No, I don't have a message box.  Nothing will happen before the main
view appears and the user clicks on a button (I disabled the automatic
actions).  But the main view doesn't appear (everything works fine in
the development image) ...

Thanks,

Joseph


Reply | Threaded
Open this post in threaded view
|

Re: Unable to deploy to an executable again

Janos Kazsoki
Joseph,

perhaps something is stripped out which should be kept.

You may want to check the generated xml for stripped methods.

Some candidates could be: a package has loose methods, which you use
indirectly without using anything from the "base classes" in the
package.

Hope this helps,
Janos


Reply | Threaded
Open this post in threaded view
|

Re: Unable to deploy to an executable again

Joseph Frippiat-2
In reply to this post by John Rubier
John Rubier wrote:
>  hWnd ifNil: [hWnd := 0]

John,

you saved my life.

Thanks,

Joseph


Reply | Threaded
Open this post in threaded view
|

Re: Unable to deploy to an executable again

Joseph Frippiat-2
In reply to this post by Schwab,Wilhelm K
Bill Schwab wrote:
> My hunch after a quick skim of the dump is that you might have a message
> box where it does not belong.  Search the archives of this group for

Bill,

you were right ... there was a messageBox. Using John Rubier
modification to the messageBox method I was able to find it.  I will
keep this modification in my image ...

Thanks,

Joseph