Re: Exceptions thrown from framework not caught in application
Re: Exceptions thrown from framework not caught in application
- Subject: Re: Exceptions thrown from framework not caught in application
- From: Andreas Grosam <email@hidden>
- Date: Tue, 12 Sep 2006 17:40:02 +0200
On 08.09.2006, at 01:38, Steve Baxter wrote:
I wish Apple would fix this - the fix is a single line of code.
Unfortunately it is not considered to be a bug...
radt://4424486
The biggest problem with this right now is that on 10.3.9 this is
completely broken. If you want to target 10.3.9 and you want to use
RTTI or exceptions across a DSO (module/framework/application)
boundary, you cannot use GCC 4.x.
radr://4535751
If we assume the source code has been correctly decorated with export
directives, what exactly (the more detailed the better) is the problem
(namely the bug/flaw which you refere with "broken") in the system
10.3.9?
Does 10.4.x work correctly?
It should be noted that in order to enable exception thrown across
DSOs, the symbols for RTTI for that exception classes need to be
instantiated only once in the fully linked application.
Does this problem you refere to occure during static linking, or is it
restricted to dynamically linking via dyld when linking shared libs, or
is it restricted when dynamically binding plugins?
If possible, please explain it using the following model:
Suppose there is a shared lib B which defines an "exception" class E.
The shared lib B might have undefined references which are defined in
another shared library C. When building lib B we need to link against
shared lib C:
B -> C
(B -> C) now describes the acylic graph of needed objects.
Now, suppose there is a DSO (shared lib or main executable) A in which
the class E should be handled in a catch clause.
1) What is required to build and link all libraries successfully?
What are the appopriate visible attributes for the classes?
It should be noted, that when building A, A may (statically) link
against C.
Can we catch exceptions of type E within code from A? (differences
in 10.3.9 and 10.4.x ?)
2) Suppose, DSO B is a plugin which will be loaded and unloaded
dynamically at runtime.
What is now required to link and build all libs successfully?
What are the appopriate visible attributes for classes?
It should be noted, that when building A, A cannot (statically) link
against C anymore.
Is it still possible to catch exceptions of class E in lib A?
Thank you for your effort to investigate this issue.
Andreas
Cheers,
Steve.
On 7 Sep 2006, at 23:13, Marshall Clow wrote:
At 5:20 PM -0400 9/7/06, Walter wrote:
Exceptions thrown from my C++ framework are no longer being caught
in my C++
application.
Here we go again. :-(
Is anyone counting how many times this comes up?
Search the archives (and follow the links):
<http://lists.apple.com/archives/xcode-users/2005/Dec/msg00145.html>
<http://lists.apple.com/archives/xcode-users/2006/Jul/msg00279.html>
Followup:
<http://lists.apple.com/archives/xcode-users/2006/Jul/msg00301.html>
and: <http://lists.apple.com/archives/xcode-users/2006/Jul/
msg00386.html>
--
-- Marshall
Marshall Clow Idio Software <mailto:email@hidden>
It is by caffeine alone I set my mind in motion.
It is by the beans of Java that thoughts acquire speed,
the hands acquire shaking, the shaking becomes a warning.
It is by caffeine alone I set my mind in motion.
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Xcode-users mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
email@hidden
This email sent to email@hidden
Steve Baxter
Software Development Manager
Improvision
+44-2476-692229
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Xcode-users mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
email@hidden
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Xcode-users mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden