13.8.2. angel_SWIreason_ReportException (0x18)

This SWI 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.

Entry

On entry r0 is set to Angel_SWIreason_ReportException, and r1 is set to one of the values listed in Table 13.5 and Table 13.6. These values are defined in adp.h. The values marked with a * are not supported by the ARM debuggers. The debugger reports an Unhandled ADP_Stopped exception for these values.

ADP_UserInterruption is generated by Angel if the debugger sends an ADP_InterruptRequest to stop the application. ADP_Breakpoint is generated when Angel detects attempted execution of a breakpoint instruction. Angel does not implement watchpoints, although other debug agents do.

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. Angel cannot report exceptions for interrupts on the vector it uses itself.

Table 13.5. Hardware vector reason codes

Name (#defined in adp.h)Hexadecimal 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

Table 13.6. Software reason codes

Name (#defined in adp.h)Hexadecimal 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

Return

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 SWI, or as subsequently modified by the debugger.

Copyright © 1997, 1998 ARM Limited. All rights reserved.ARM DUI 0040D
Non-Confidential