On Wednesday, 1 January 2014 at 15:19:01 UTC, Iain Buclaw wrote:
On 1 Jan 2014 14:05, "Timo Sintonen" <t.sinto...@luukku.com> wrote:

I started to update minlibd with gdc head from last saturday. While
testing if exceptions work, the program just stops and does not reach catch
or abort.

Before investigating further, I want to ask the status of arm exceptions:
are they known to work, known not to work or is the status just unknown?

Does anybody know if there are any good articles of exceptions and
unwinding in gcc or in general?


How are exceptions implemented in minilibd? I assume that you don't
use/copy from the gdc compiler runtime folders (rt.* and gcc.*)

I do not have my own code here. I just add those files that are needed to link the test program. Currently I have rt/deh.d, gcc/deh.d, gcc/unwind/pe.d, gcc/unwind/arm.d and core/exception.d

Meanwhile I found an exception abi documentation from arm:
http://infocenter.arm.com/help/topic/com.arm.doc.ihi0038a/IHI0038A_ehabi.pdf
and now I know a little how this is supposed to work.

By looking the asm I think that at the throw point it generates the exception object and then the unwind_control_block struct and then calls _Unwind_Resume. The unwind tables have already been in linker script. Then the unwind system should at some point call the personality functions in gcc/deh.d.

Maybe I have to check if there is meaningful data in the unwind tables and if the personality functions ever get called.

Reply via email to