From 7610d7b65dc77898bfa4459e1237d4d3a98deed9 Mon Sep 17 00:00:00 2001 From: Romain Goyet Date: Mon, 14 May 2018 21:21:04 +0200 Subject: [PATCH] Add a routine to debug ARM exceptions in GDB --- build/device/gdb_script.gdb | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/build/device/gdb_script.gdb b/build/device/gdb_script.gdb index b5640762a..00ed74e75 100644 --- a/build/device/gdb_script.gdb +++ b/build/device/gdb_script.gdb @@ -1,3 +1,28 @@ +# Add a routine to debug ARM exceptions + +define armex + printf "SCB_CFSR 0x%x\n", *0xE000ED28 + printf "SCB_HFSR 0x%x\n", *0xE000ED2C + printf "SCB_HFSR 0x%x\n", *0xE000ED2C + printf "SCB_MMAR 0x%x\n", *0xE000ED34 + printf "SCB_BFAR 0x%x\n", *0xE000ED38 + printf "xPSR 0x%x\n", *(int *)($msp+28) + printf "ReturnAddress 0x%x\n", *(int *)($msp+24) + printf "LR (R14) 0x%x\n", *(int *)($msp+20) + printf "R12 0x%x\n", *(int *)($msp+16) + printf "R3 0x%x\n", *(int *)($msp+12) + printf "R2 0x%x\n", *(int *)($msp+8) + printf "R1 0x%x\n", *(int *)($msp+4) + printf "R0 0x%x\n", *(int *)($msp) + printf "Return instruction:\n" + x/i *(int *)($msp+24) +end + +document armex +ARMv7 Exception entry behavior. +xPSR, ReturnAddress, LR (R14), R12, R3, R2, R1, and R0 +end + # Let's connect to OpenOCD target remote localhost:3333