3.1.13. Controlling exception table generation

There are four options that control exception table generation:

--exceptions

Instructs the assembler to switch on exception table generation for all functions encountered.

--no_exceptions

Instructs the assembler to switch off exception table generation. No tables are generated. This is the default.

--exceptions_unwind

Instructs the assembler to produce unwind tables for functions where possible. This is the default.

--no_exceptions_unwind

Instructs the assembler to produce nounwind tables for every function.

For finer control, use FRAME UNWIND ON and FRAME UNWIND OFF directives, see FRAME UNWIND ON and FRAME UNWIND OFF.

Unwind tables

A function is code encased by PROC/ENDP or FUNC/ENDFUNC directives.

An exception can propagate through a function with an unwind table. The assembler generates the unwinding information from debug frame information.

An exception cannot propagate through a function with a nounwind table. The exception handling runtime environment terminates the program if it encounters a nounwind table during exception processing.

The assembler can generate nounwind table entries for all functions and non-functions. The assembler can generate an unwind table for a function only if the function contains sufficient FRAME directives to describe the use of the stack within the function. Functions must conform to the conditions set out in the Exception Handling ABI for the ARM Architecture (EHABI), section 9.1 Constraints on Use. If the assembler cannot generate an unwind table it generates a nounwind table.

Copyright © 2002-2010 ARM. All rights reserved.ARM DUI 0204J
Non-ConfidentialID101213