VSE Virtual Machine sources

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

VSE Virtual Machine sources

Carl Gundel-2
Sometimes when VSE will crash it will ask if I want to open the
debugging environment on the crashed virtual machine.  If I wanted to
do this I would need the VM sources, right?  Does Cincom make these
sources available to their customers?

Thanks,

-Carl Gundel
http://www.libertybasic.com
http://www.runbasic.com

***           this signature added by listserv             ***
*** Visit  http://www.listserv.dfn.de/archives/vswe-l.html ***
*** for archive browsing and VSWE-L membership management  ***
Reply | Threaded
Open this post in threaded view
|

Re: VSE Virtual Machine sources

Jason Ayers
Carl,

No we don't. Clients with active support contracts for VSE 2000 can contact
our support centre.

Best Regards, Jason


On 10/10/2011 17:12, "Carl Gundel" <[hidden email]> wrote:

> Sometimes when VSE will crash it will ask if I want to open the
> debugging environment on the crashed virtual machine.  If I wanted to
> do this I would need the VM sources, right?  Does Cincom make these
> sources available to their customers?
>
> Thanks,
>
> -Carl Gundel
> http://www.libertybasic.com
> http://www.runbasic.com
>
> ***           this signature added by listserv             ***
> *** Visit  http://www.listserv.dfn.de/archives/vswe-l.html ***
> *** for archive browsing and VSWE-L membership management  ***


Jason Ayers
EMEA Director
Cincom Smalltalk



email:  [hidden email]
phone: +44 1628 542300
mobile: +44 7976 052246
http://www.cincom.com/

This email and the information it contains  are a confidential and
privileged communication for the sole use of the intended recipients. Any
unauthorized review, use, disclosure, or distribution is prohibited. If you
have received this message and are not the intended recipient(s) please
notify the sender by telephone or reply via email and destroy all copies of
the original message. All offers are valid for 30 days unless stated
otherwise and all terms are subject to contract.

***           this signature added by listserv             ***
*** Visit  http://www.listserv.dfn.de/archives/vswe-l.html ***
*** for archive browsing and VSWE-L membership management  ***
Reply | Threaded
Open this post in threaded view
|

Re: VSE Virtual Machine sources

Henrik Høyer
Does that mean that you will supply the debug-symbols and/or sources to such customers?



--
Henrik Høyer
Chief Software Architect
[hidden email] * (+45) 4029 2092
Marievej 15 * 4600 Køge
www.sPeople.dk * (+45) 7023 7775


-----Original Message-----
From: Using Visual Smalltalk for Windows/Enterprise [mailto:[hidden email]] On Behalf Of Ayers, Jason
Sent: 10. oktober 2011 18:55
To: [hidden email]
Subject: Re: VSE Virtual Machine sources

Carl,

No we don't. Clients with active support contracts for VSE 2000 can contact our support centre.

Best Regards, Jason


On 10/10/2011 17:12, "Carl Gundel" <[hidden email]> wrote:

> Sometimes when VSE will crash it will ask if I want to open the
> debugging environment on the crashed virtual machine.  If I wanted to
> do this I would need the VM sources, right?  Does Cincom make these
> sources available to their customers?
>
> Thanks,
>
> -Carl Gundel
> http://www.libertybasic.com
> http://www.runbasic.com
>
> ***           this signature added by listserv             ***
> *** Visit  http://www.listserv.dfn.de/archives/vswe-l.html ***
> *** for archive browsing and VSWE-L membership management  ***


Jason Ayers
EMEA Director
Cincom Smalltalk



email:  [hidden email]
phone: +44 1628 542300
mobile: +44 7976 052246
http://www.cincom.com/

This email and the information it contains  are a confidential and privileged communication for the sole use of the intended recipients. Any unauthorized review, use, disclosure, or distribution is prohibited. If you have received this message and are not the intended recipient(s) please notify the sender by telephone or reply via email and destroy all copies of the original message. All offers are valid for 30 days unless stated otherwise and all terms are subject to contract.

***           this signature added by listserv             ***
*** Visit  http://www.listserv.dfn.de/archives/vswe-l.html ***
*** for archive browsing and VSWE-L membership management  ***

***           this signature added by listserv             ***
*** Visit  http://www.listserv.dfn.de/archives/vswe-l.html ***
*** for archive browsing and VSWE-L membership management  ***
Reply | Threaded
Open this post in threaded view
|

Re: VSE Virtual Machine sources

Diane Savereide-2
In reply to this post by Carl Gundel-2
My company purchased the VM sources directly from Seagull about five years
ago. These are circa 1995 sources with a few bug fixes. I don't think Cincom
owns the rights to distribute the source.

-----Original Message-----
From: Using Visual Smalltalk for Windows/Enterprise
[mailto:[hidden email]] On Behalf Of Carl Gundel
Sent: Monday, October 10, 2011 9:12 AM
To: [hidden email]
Subject: VSE Virtual Machine sources

Sometimes when VSE will crash it will ask if I want to open the
debugging environment on the crashed virtual machine.  If I wanted to
do this I would need the VM sources, right?  Does Cincom make these
sources available to their customers?

Thanks,

-Carl Gundel
http://www.libertybasic.com
http://www.runbasic.com

***           this signature added by listserv             ***
*** Visit  http://www.listserv.dfn.de/archives/vswe-l.html ***
*** for archive browsing and VSWE-L membership management  ***

***           this signature added by listserv             ***
*** Visit  http://www.listserv.dfn.de/archives/vswe-l.html ***
*** for archive browsing and VSWE-L membership management  ***
Reply | Threaded
Open this post in threaded view
|

Re: VSE Virtual Machine sources

Ivar Maeland
In reply to this post by Carl Gundel-2
It depends a little what kind of crash occurred, but even without the source code you can still open the crashed VM in Visual Studio and examine the stack to determine what the last methods executed were.
It is a little outdated with current version of VS, but the following explains how to walk the Smalltalk stack.
http://www.tec4.ca/smalltalk/walking_a_smalltalk_stack_dump.html


Ivar Maeland, B.Sc., MCAD
Product Developer
Policy Works Inc.
Commercial Management Systems
 
Toll Free: 1.800.260.3676 ext.109
Direct: 403.450.1109
www.policyworks.com



-----Original Message-----
From: Using Visual Smalltalk for Windows/Enterprise [mailto:[hidden email]] On Behalf Of Carl Gundel
Sent: October 10, 2011 10:12 AM
To: [hidden email]
Subject: VSE Virtual Machine sources

Sometimes when VSE will crash it will ask if I want to open the debugging environment on the crashed virtual machine.  If I wanted to do this I would need the VM sources, right?  Does Cincom make these sources available to their customers?

Thanks,

-Carl Gundel
http://www.libertybasic.com
http://www.runbasic.com

***           this signature added by listserv             ***
*** Visit  http://www.listserv.dfn.de/archives/vswe-l.html ***
*** for archive browsing and VSWE-L membership management  ***

***           this signature added by listserv             ***
*** Visit  http://www.listserv.dfn.de/archives/vswe-l.html ***
*** for archive browsing and VSWE-L membership management  ***
Reply | Threaded
Open this post in threaded view
|

Re: VSE Virtual Machine sources

Andreas Rosenberg
In reply to this post by Carl Gundel-2
I wrote a little document that may help examining the
stack if a VM crash happens.

You will find it in our VSE wiki:

http://vse-wiki.apis.de/index.cgi/Articles

SmalltalkCrashAnalysis.pdf

Regards

  Andreas

Andreas Rosenberg | eMail: [hidden email]
APIS GmbH         | Phone: +49 9482 9415-0
Im Haslet 42      | Fax: +49 9482 9415-55
93086 Wörth/D     | WWW: <http://www.apis.de/>
Germany           | <http://www.fmea.de/>




-----Original Message-----
From: Using Visual Smalltalk for Windows/Enterprise
[mailto:[hidden email]]On Behalf Of Carl Gundel
Sent: Montag, 10. Oktober 2011 18:12
To: [hidden email]
Subject: VSE Virtual Machine sources


Sometimes when VSE will crash it will ask if I want to open the
debugging environment on the crashed virtual machine.  If I wanted to
do this I would need the VM sources, right?  Does Cincom make these
sources available to their customers?

Thanks,

-Carl Gundel
http://www.libertybasic.com
http://www.runbasic.com

***           this signature added by listserv             ***
*** Visit  http://www.listserv.dfn.de/archives/vswe-l.html ***
*** for archive browsing and VSWE-L membership management  ***

***           this signature added by listserv             ***
*** Visit  http://www.listserv.dfn.de/archives/vswe-l.html ***
*** for archive browsing and VSWE-L membership management  ***
Reply | Threaded
Open this post in threaded view
|

Re: VSE Virtual Machine sources

Todor Todorov
In reply to this post by Ivar Maeland
Hey Carl,

There are 3 common cases where VSE crashes:

1. You are calling 3rd party component (API call, COM call etc.) and this component is buggy. Then you need the PDB for that component. Microsoft provides PDBs for most of their stuff. Visual Studio can even load those on the fly form the internet.

2. There is a bug in the VM. The PDB from Cincom might help in some situations. However, there are 2 major cases here.
2a. Bug in some static VM code, e.g. the GC algorithm or some other helper function. PDB will help.
2b. Bug in some on-the-fly generated (JIT compiled) code. That code does not have PDBs and is difficult do debug. I don't know if there are people (outside Cincom) with knowledge how to debug this.

3. Bug in some API declaration in your Smalltalk code, or simply just passing wrong or invalid parameters to the API. PDBs here will help, but most probably the stack trace that Ivar mentioned will help you most.


In my experience, 90% of all GPFs are due to bug in category 3. Category 2 bugs (the one that need Cincom intervention) are rare, and people do report them on the list and work around or how to avoid them. Example of category 2 bug is ... [ :a :b | String with: a with: b ] valueWithArguments: 'AB'. The primitive does check the size of the object, but doesn't check that it's actually a pointer object. But as I said, search the list archives to see if you can find information.


As Ivar mentioned, it's possible to reconstruct the Smalltalk stack. The linked document describes how. I've used this often to reconstruct the stack and figure out if it crashes in a certain pattern. I suggest that you:
1. Start Microsoft Excel.
2. Dump the raw stack contents in the memory viewer in Visual Studio.
3. Use the value of the ESP and EBP registers to figure out what part of the stack to dump.
4. Paste the raw stack contents (raw data) into Excel.
5. Start decoding the stack by hand. This can be quite time consuming, but with time, you learn to recognize some patterns.
6. Fix the bug!

Some special things.
- If it is a class method, you will need one extra lookup to get the name of the class.
- You will learn very fast to recognize the address of <nil>. It's a static object that never moves in memory. However, it's different depending on VM versions. If I remember correctly, the one my ex employer used had the address 0x10026060 (or something in that range).
- The document that Ivar sent only describes normal Smalltalk stack frames. When in API call, the stack frame is different and if you try to decode the stack, you will get garbage. As far as I know, there is no documentation on the API call frames. But if I remember correctly, it's easy to spot API call frames (from the function return addresses) and in the API call frame you can find a pointer to the top "real" Smalltalk frame. I don't know the exact recipe, but with some trial and error, you will learn how to easily spot the stack pointers and frames.
- Use Excel and give data different colors. This makes the stack frames much more visible and easy to understand what crashed it.

I hope this helps.



-----Original Message-----
From: Using Visual Smalltalk for Windows/Enterprise [mailto:[hidden email]] On Behalf Of Ivar Maeland
Sent: 11. oktober 2011 15:43
To: [hidden email]
Subject: Re: VSE Virtual Machine sources

It depends a little what kind of crash occurred, but even without the source code you can still open the crashed VM in Visual Studio and examine the stack to determine what the last methods executed were.
It is a little outdated with current version of VS, but the following explains how to walk the Smalltalk stack.
http://www.tec4.ca/smalltalk/walking_a_smalltalk_stack_dump.html


Ivar Maeland, B.Sc., MCAD
Product Developer
Policy Works Inc.
Commercial Management Systems
 
Toll Free: 1.800.260.3676 ext.109
Direct: 403.450.1109
www.policyworks.com



-----Original Message-----
From: Using Visual Smalltalk for Windows/Enterprise [mailto:[hidden email]] On Behalf Of Carl Gundel
Sent: October 10, 2011 10:12 AM
To: [hidden email]
Subject: VSE Virtual Machine sources

Sometimes when VSE will crash it will ask if I want to open the debugging environment on the crashed virtual machine.  If I wanted to do this I would need the VM sources, right?  Does Cincom make these sources available to their customers?

Thanks,

-Carl Gundel
http://www.libertybasic.com
http://www.runbasic.com

***           this signature added by listserv             ***
*** Visit  http://www.listserv.dfn.de/archives/vswe-l.html ***
*** for archive browsing and VSWE-L membership management  ***

***           this signature added by listserv             ***
*** Visit  http://www.listserv.dfn.de/archives/vswe-l.html ***
*** for archive browsing and VSWE-L membership management  ***

***           this signature added by listserv             ***
*** Visit  http://www.listserv.dfn.de/archives/vswe-l.html ***
*** for archive browsing and VSWE-L membership management  ***
Reply | Threaded
Open this post in threaded view
|

Re: VSE Virtual Machine sources

Carl Gundel-2
Thanks to everyone for the detailed and helpful information!  :-)

-Carl Gundel
http://www.libertybasic.com
http://www.runbasic.com

On Tue, Oct 11, 2011 at 11:07 AM, Todor Todorov <[hidden email]> wrote:

> Hey Carl,
>
> There are 3 common cases where VSE crashes:
>
> 1. You are calling 3rd party component (API call, COM call etc.) and this component is buggy. Then you need the PDB for that component. Microsoft provides PDBs for most of their stuff. Visual Studio can even load those on the fly form the internet.
>
> 2. There is a bug in the VM. The PDB from Cincom might help in some situations. However, there are 2 major cases here.
> 2a. Bug in some static VM code, e.g. the GC algorithm or some other helper function. PDB will help.
> 2b. Bug in some on-the-fly generated (JIT compiled) code. That code does not have PDBs and is difficult do debug. I don't know if there are people (outside Cincom) with knowledge how to debug this.
>
> 3. Bug in some API declaration in your Smalltalk code, or simply just passing wrong or invalid parameters to the API. PDBs here will help, but most probably the stack trace that Ivar mentioned will help you most.
>
>
> In my experience, 90% of all GPFs are due to bug in category 3. Category 2 bugs (the one that need Cincom intervention) are rare, and people do report them on the list and work around or how to avoid them. Example of category 2 bug is ... [ :a :b | String with: a with: b ] valueWithArguments: 'AB'. The primitive does check the size of the object, but doesn't check that it's actually a pointer object. But as I said, search the list archives to see if you can find information.
>
>
> As Ivar mentioned, it's possible to reconstruct the Smalltalk stack. The linked document describes how. I've used this often to reconstruct the stack and figure out if it crashes in a certain pattern. I suggest that you:
> 1. Start Microsoft Excel.
> 2. Dump the raw stack contents in the memory viewer in Visual Studio.
> 3. Use the value of the ESP and EBP registers to figure out what part of the stack to dump.
> 4. Paste the raw stack contents (raw data) into Excel.
> 5. Start decoding the stack by hand. This can be quite time consuming, but with time, you learn to recognize some patterns.
> 6. Fix the bug!
>
> Some special things.
> - If it is a class method, you will need one extra lookup to get the name of the class.
> - You will learn very fast to recognize the address of <nil>. It's a static object that never moves in memory. However, it's different depending on VM versions. If I remember correctly, the one my ex employer used had the address 0x10026060 (or something in that range).
> - The document that Ivar sent only describes normal Smalltalk stack frames. When in API call, the stack frame is different and if you try to decode the stack, you will get garbage. As far as I know, there is no documentation on the API call frames. But if I remember correctly, it's easy to spot API call frames (from the function return addresses) and in the API call frame you can find a pointer to the top "real" Smalltalk frame. I don't know the exact recipe, but with some trial and error, you will learn how to easily spot the stack pointers and frames.
> - Use Excel and give data different colors. This makes the stack frames much more visible and easy to understand what crashed it.
>
> I hope this helps.
>
>
>
> -----Original Message-----
> From: Using Visual Smalltalk for Windows/Enterprise [mailto:[hidden email]] On Behalf Of Ivar Maeland
> Sent: 11. oktober 2011 15:43
> To: [hidden email]
> Subject: Re: VSE Virtual Machine sources
>
> It depends a little what kind of crash occurred, but even without the source code you can still open the crashed VM in Visual Studio and examine the stack to determine what the last methods executed were.
> It is a little outdated with current version of VS, but the following explains how to walk the Smalltalk stack.
> http://www.tec4.ca/smalltalk/walking_a_smalltalk_stack_dump.html
>
>
> Ivar Maeland, B.Sc., MCAD
> Product Developer
> Policy Works Inc.
> Commercial Management Systems
>
> Toll Free: 1.800.260.3676 ext.109
> Direct: 403.450.1109
> www.policyworks.com
>
>
>
> -----Original Message-----
> From: Using Visual Smalltalk for Windows/Enterprise [mailto:[hidden email]] On Behalf Of Carl Gundel
> Sent: October 10, 2011 10:12 AM
> To: [hidden email]
> Subject: VSE Virtual Machine sources
>
> Sometimes when VSE will crash it will ask if I want to open the debugging environment on the crashed virtual machine.  If I wanted to do this I would need the VM sources, right?  Does Cincom make these sources available to their customers?
>
> Thanks,
>
> -Carl Gundel
> http://www.libertybasic.com
> http://www.runbasic.com
>
> ***           this signature added by listserv             ***
> *** Visit  http://www.listserv.dfn.de/archives/vswe-l.html ***
> *** for archive browsing and VSWE-L membership management  ***
>
> ***           this signature added by listserv             ***
> *** Visit  http://www.listserv.dfn.de/archives/vswe-l.html ***
> *** for archive browsing and VSWE-L membership management  ***
>
> ***           this signature added by listserv             ***
> *** Visit  http://www.listserv.dfn.de/archives/vswe-l.html ***
> *** for archive browsing and VSWE-L membership management  ***
>

***           this signature added by listserv             ***
*** Visit  http://www.listserv.dfn.de/archives/vswe-l.html ***
*** for archive browsing and VSWE-L membership management  ***