Board index » delphi » Re: External Error (D6 Enterprise) Correction with humble apologies

Re: External Error (D6 Enterprise) Correction with humble apologies


2003-11-19 11:02:06 PM
delphi12
Quote
According to my Great Blue Crystal Ball you need to tell us what the
error message is.
My Bad. The correct text of the error message is "External exception
C0000029."
I thought I had written the exact text in the subject line, but I had not.
I repent in sackcloth and ashes.
Jon
 
 

Re: External Error (D6 Enterprise) Correction with humble apologies

Quote
The correct text of the error message is "External exception
C0000029."
Which is...
STATUS_INVALID_UNWIND_TARGET = $C0000029;
You may find help searching on Google...
www.google.com/
groups.google.com/
Or searching at Microsoft's web site.
It appears that this exception is raised when the stack is corrupt and
the exception handler is trying to unwind. There is a LONG list of
reasons the stack may become corrupt including...
- Buffer overrun
- Wrong calling convention
- Dereferencing an invalid / dangling pointer
- Lack of thread synchronization
If I were in your shoes, I would...
- Remove *ALL* IDE Experts and Wizards that didn't come from Borland
(and maybe even those that did)
- Remove any third-party components that were not explicitly needed
- Restart Delphi
- Build then compile
Or... Run Delphi under the de{*word*81}.
Good luck, Brian
 

Re: External Error (D6 Enterprise) Correction with humble apologies

Thank you very much.
Quote
Or... Run Delphi under the de{*word*81}.
It only happens when running under the de{*word*81}. At that point, it is not
possible to find the error, because it is not possible to close the error
window (or rather an identical one pops up the instant I close it ... ad
infinitum - hence the name: eternal error).
I will seach google. Again thanks.
"Brian Cook" <bcook@rowdydogsoftware[REMOVE].com>writes
Quote
>The correct text of the error message is "External exception
>C0000029."

Which is...

STATUS_INVALID_UNWIND_TARGET = $C0000029;

You may find help searching on Google...

www.google.com/
groups.google.com/

Or searching at Microsoft's web site.


It appears that this exception is raised when the stack is corrupt and
the exception handler is trying to unwind. There is a LONG list of
reasons the stack may become corrupt including...

- Buffer overrun

- Wrong calling convention

- Dereferencing an invalid / dangling pointer

- Lack of thread synchronization


If I were in your shoes, I would...

- Remove *ALL* IDE Experts and Wizards that didn't come from Borland
(and maybe even those that did)

- Remove any third-party components that were not explicitly needed

- Restart Delphi

- Build then compile


Or... Run Delphi under the de{*word*81}.


Good luck, Brian
 

Re: External Error (D6 Enterprise) Correction with humble apologies

Quote
>Or... Run Delphi under the de{*word*81}.
It only happens when running under the de{*word*81}. At that point, it is not
possible to find the error, because it is not possible to close the error
window (or rather an identical one pops up the instant I close it ... ad
infinitum - hence the name: eternal error).
I don't think you understood...
- Start Delphi
- Load a small DLL or BPL project (or make a new one)
- Set Delphi32.exe as the host application
- Run
A second instance of Delphi starts. Using the second instance, make the
problem occur. You may be able to determine what went wrong by
debugging the second instance of Delphi (e.g. ensure "Stop on Delphi
Exceptions" is enabled in the first instance).
The above coupled with a little bit of assembly knowledge has enabled me
to indentify a handful of IDE bugs.
Good luck, Brian
 

Re: External Error (D6 Enterprise) Correction with humble apologies

That's a neat trick I never thought of. I will print this one for reference.
Thanks!
Quote
I don't think you understood...

- Start Delphi

- Load a small DLL or BPL project (or make a new one)

- Set Delphi32.exe as the host application

- Run

A second instance of Delphi starts. Using the second instance, make the
problem occur. You may be able to determine what went wrong by
debugging the second instance of Delphi (e.g. ensure "Stop on Delphi
Exceptions" is enabled in the first instance).


The above coupled with a little bit of assembly knowledge has enabled me
to indentify a handful of IDE bugs.