angel_SWIreason_ReportException (0x18)

This SVC can be called by an application to report an exception to the debugger directly. The most common use is to report that execution has completed, using ADP_Stopped_ApplicationExit.

Show/hideEntry

On entry R1 is set to one of the values listed in the following tables. These values are defined in angel_reasons.h.

The hardware exceptions are generated if the debugger variable vector_catch is set to catch that exception type, and the debug agent is capable of reporting that exception type. The following table shows the hardware vector reason codes:

Table 16. Hardware vector reason codes

NameHexadecimal value
ADP_Stopped_BranchThroughZero0x20000
ADP_Stopped_UndefinedInstr0x20001
ADP_Stopped_SoftwareInterrupt0x20002
ADP_Stopped_PrefetchAbort0x20003
ADP_Stopped_DataAbort0x20004
ADP_Stopped_AddressException0x20005
ADP_Stopped_IRQ 0x20006
ADP_Stopped_FIQ0x20007

Exception handlers can use these SVCs at the end of handler chains as the default action, to indicate that the exception has not been handled. The following table shows the software reason codes:

Table 17. Software reason codes

NameHexadecimal value
ADP_Stopped_BreakPoint0x20020
ADP_Stopped_WatchPoint0x20021
ADP_Stopped_StepComplete0x20022
ADP_Stopped_RunTimeErrorUnknown*0x20023
ADP_Stopped_InternalError*0x20024
ADP_Stopped_UserInterruption0x20025
ADP_Stopped_ApplicationExit0x20026
ADP_Stopped_StackOverflow*0x20027
ADP_Stopped_DivisionByZero*0x20028
ADP_Stopped_OSSpecific*0x20029

In this table, a * next to a value indicates that the value is not supported by the ARM debugger. The debugger reports an Unhandled ADP_Stopped exception for these values.

Show/hideReturn

No return is expected from these calls. However, it is possible for the debugger to request that the application continue by performing an RDI_Execute request or equivalent. In this case, execution continues with the registers as they were on entry to the SVC, or as subsequently modified by the debugger.

Copyright © 2010-2012 ARM. All rights reserved.ARM DUI 0471G
Non-ConfidentialID021412