3.1.13. 예외 테이블 생성 제어

예외 테이블 생성을 제어하는 옵션에는 다음과 같은 네 가지가 있습니다.

--exceptions

발견한 모든 함수에 대해 예외 테이블 생성을 설정하도록 어셈블러에 지시합니다.

--no_exceptions

예외 테이블 생성을 해제하도록 어셈블러에 지시합니다. 디버그 테이블은 생성되지 않습니다. 이것이 기본값입니다.

--exceptions_unwind

가능한 경우 함수에 대해 해제 테이블을 생성하도록 어셈블러에 지시합니다. 이것이 기본값입니다.

--no_exceptions_unwind

모든 함수에 대해 해제 없음 테이블을 생성하도록 어셈블러에 지시합니다.

보다 세밀하게 제어하려는 경우 FRAME UNWIND ONFRAME UNWIND OFF 지시어를 사용합니다 (FRAME UNWIND ONFRAME UNWIND OFF 참조).

해제 테이블

functionPROC/ENDP 또는 FUNC/ENDFUNC 지시어로 묶인 코드입니다.

예외는 해제 테이블이 포함된 함수를 통해 전파될 수 있습니다. 어셈블러에서는 디버그 프레임 정보에서 해제 정보를 생성합니다.

예외는 해제 없음 테이블이 포함된 함수를 통해 전파될 수 없습니다. 예외 처리 런타임 환경에서는 예외를 처리하는 동안 해제 없음 테이블이 발견되면 프로그램을 종료합니다.

어셈블러에서는 모든 함수 및 비 함수에 대해 해제 없음 테이블 항목을 생성할 수 있습니다. 어셈블러에서는 함수 내의 스택 사용을 설명하기에 충분한 FRAME 지시어가 함수에 포함된 경우 함수에 대해 해제 테이블을 생성할 수 있습니다. 함수는 EHABI (ARM 아키텍처용 예외 처리 ABI), 섹션 9.1 사용 제한에 설명된 조건을 준수해야 합니다. 어셈블러에서 해제 테이블을 생성할 수 없는 경우에는 해제 없음 테이블을 생성합니다.

Copyright © 2002-2008 ARM Limited. All rights reserved.ARM DUI 0204IK
Non-Confidential