summaryrefslogtreecommitdiff
path: root/packages/libndsfpc/examples/debugging/exceptionTest/exceptionTest.pp
diff options
context:
space:
mode:
Diffstat (limited to 'packages/libndsfpc/examples/debugging/exceptionTest/exceptionTest.pp')
-rw-r--r--packages/libndsfpc/examples/debugging/exceptionTest/exceptionTest.pp25
1 files changed, 25 insertions, 0 deletions
diff --git a/packages/libndsfpc/examples/debugging/exceptionTest/exceptionTest.pp b/packages/libndsfpc/examples/debugging/exceptionTest/exceptionTest.pp
new file mode 100644
index 0000000000..086a1c6307
--- /dev/null
+++ b/packages/libndsfpc/examples/debugging/exceptionTest/exceptionTest.pp
@@ -0,0 +1,25 @@
+program main;
+
+{$apptype arm9}
+{$mode objfpc}
+
+uses
+ ctypes, nds9;
+
+// The default exception handler displays the exception type - data abort or undefined instruction
+// you can relate the exception to your code using arm-eabi-addr2line -e <elf file> <address>
+// assuming you built with debug info this will display a source file and a line number
+// The address of the instruction is shown as pc, beside the address which faulted
+// the rest of the screen is a dump of the registers.
+
+begin
+ // install the default exception handler
+ defaultExceptionHandler();
+
+ // generate an exception
+ pu32(250)^ := 100;
+
+ while true do
+ swiWaitForVBlank();
+
+end.