|
From: | Mathias Bauer |
Subject: | Re: Problem with catching exceptions on ARM |
Date: | Fri, 21 Feb 2014 11:06:31 +0100 |
User-agent: | Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:24.0) Gecko/20100101 Thunderbird/24.3.0 |
Hi, Am 20.02.14 18:27, schrieb Mathias Bauer:
I tested, that a simple @try/@catch works (an exception thrown in a function called from the @try block is caught successfully and the program exits normally). But throwing another exception in the function that caught the exception freezes the program again. It doesn't matter if the second exception is thrown inside the @catch block or outside of it.
More exactly:EH works if an exception is thrown and caught in a function and then another exception is thrown and caught in that same function.
EH works if an exception is thrown in a function and caught in another function above on the call stack.
The program does not continue if an exception is thrown and caught in a function and then another exception is thrown in that same function and shall be caught in a function above on the call stack (the typical "rethrow" scenario).
From debugging the code I could see that in this case the function "internal_objc_personality" in eh_personality.c only finds a handler that is a cleanup, and so the function is called again and again, always with the same result.
Regards, Mathias
[Prev in Thread] | Current Thread | [Next in Thread] |