| |||
| Home > Assembler Reference > Command syntax > Controlling exception table generation | |||
There are four options that control exception table generation:
--exceptionsInstructs the assembler to switch on exception table generation for all functions encountered.
--no_exceptionsInstructs the assembler to switch off exception table generation. No tables are generated. This is the default.
--exceptions_unwindInstructs the assembler to produce unwind tables for functions where possible. This is the default.
--no_exceptions_unwindInstructs 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.
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.