summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTat-Chee Wan (USM)2011-03-22 07:29:01 +0800
committerTat-Chee Wan (USM)2011-03-22 07:29:01 +0800
commitd989c3e9adcc8c016bbefcc69b0d7ebfbdd2ff18 (patch)
tree26748cb4c8c3fed7d99195a7f5d7ed7134299e39
parent62c15f55e6fc9770e5dab43a1e1a6d8e4085863e (diff)
cleaned up error message handlers
-rw-r--r--Debugger/debug_macros.h29
-rw-r--r--Debugger/debug_stub.S33
2 files changed, 42 insertions, 20 deletions
diff --git a/Debugger/debug_macros.h b/Debugger/debug_macros.h
index 5af75fd..b7f4ea1 100644
--- a/Debugger/debug_macros.h
+++ b/Debugger/debug_macros.h
@@ -148,18 +148,18 @@
_dbg_stpcpy r0, r1, r2
.endm
-/* _dbg_outputMsgStatusErr
+/* __dbg_outputErrMsg
+ * Internal Routine called to generate error messages
* Return Message with Error ('-$ENN') status
* On entry:
- * R0: error code
+ * R1: error code
* On exit:
* R0: Pointer to Output Buffer ASCIIZ location
* R1: destroyed
* R2: destroyed
* R3: destroyed
*/
- .macro _dbg_outputMsgStatusErr
- mov r1, r0
+ .macro __dbg_outputErrMsg
ldr r0, =debug_OutMsgBuf
ldr r2, =debug_ErrorResponsePrefix
_dbg_stpcpy r0, r2, r3
@@ -167,6 +167,21 @@
_asciiz r0, r1
.endm
+/* _dbg_outputMsgStatusErr
+ * Return Message with Error ('-$ENN') status
+ * On entry:
+ * R0: error code
+ * On exit:
+ * R0: Pointer to Output Buffer ASCIIZ location
+ * R1: destroyed
+ * R2: destroyed
+ * R3: destroyed
+ */
+ .macro _dbg_outputMsgStatusErr
+ mov r1, r0
+ __dbg_outputErrMsg
+ .endm
+
/* _dbg_outputMsgStatusErrCode
* Return Message with Error ('-$ENN') status
* On exit:
@@ -175,12 +190,8 @@
* R2: destroyed
*/
.macro _dbg_outputMsgStatusErrCode errcode
- ldr r0, =debug_OutMsgBuf
- ldr r1, =debug_ErrorResponsePrefix
- _dbg_stpcpy r0, r1, r2
mov r1, #\errcode
- bl byte2ascii /* R0 points to buffer position after byte value */
- _asciiz r0, r1
+ __dbg_outputErrMsg
.endm
/* _dbg_outputMsgStatusSig
diff --git a/Debugger/debug_stub.S b/Debugger/debug_stub.S
index c9b9ad7..942d56c 100644
--- a/Debugger/debug_stub.S
+++ b/Debugger/debug_stub.S
@@ -661,9 +661,8 @@ __dbg__procCmdOk:
*
*/
__dbg__procCmdParamError:
- _dbg_outputMsgStatusErrCode MSG_UNKNOWNPARAM
- b __dbg__sendDebugMsgExit
-
+ mov r1, #MSG_UNKNOWNPARAM
+ b __dbg__procErrorMsg
/* __dbg__procCmdReturnInputLengthError
* Common subroutine exit stub to handle Command Input Length Error for Command Handlers
@@ -671,8 +670,8 @@ __dbg__procCmdParamError:
*
*/
__dbg__procCmdReturnInputLengthError:
- _dbg_outputMsgStatusErrCode MSG_ERRINLENGTH
- b __dbg__sendDebugMsgExit
+ mov r1, #MSG_ERRINLENGTH
+ b __dbg__procErrorMsg
/* __dbg__procCmdReturnOutputLengthError
* Common subroutine exit stub to handle Command Return Output Error for Command Handlers
@@ -680,8 +679,8 @@ __dbg__procCmdReturnInputLengthError:
*
*/
__dbg__procCmdReturnOutputLengthError:
- _dbg_outputMsgStatusErrCode MSG_ERROUTLENGTH
- b __dbg__sendDebugMsgExit
+ mov r1, #MSG_ERROUTLENGTH
+ b __dbg__procErrorMsg
/* __dbg__procBreakpointAddrError
* Common subroutine exit stub to handle Breakpoint Address Error for Breakpoint Insert/Remove Handlers
@@ -689,7 +688,21 @@ __dbg__procCmdReturnOutputLengthError:
*
*/
__dbg__procBreakpointAddrError:
- _dbg_outputMsgStatusErrCode MSG_UNKNOWNBRKPT
+ mov r1, #MSG_UNKNOWNBRKPT
+ b __dbg__procErrorMsg
+
+/* __dbg__procUnimplementedError
+ * Common subroutine exit stub to handle Unimplemented GDB Command Error
+ * DO NOT CALL THIS STUB DIRECTLY! It Assumes that the return address is in the stack.
+ *
+ */
+__dbg__procUnimplementedError:
+ mov r1, #MSG_ERRIMPL
+ /* b __dbg__procErrorMsg */
+
+__dbg__procErrorMsg:
+ __dbg_outputErrMsg
+ /* b __dbg__sendDebugMsgExit */
__dbg__sendDebugMsgExit:
bl dbg__putDebugMsg /* Send error response to the GDB server */
@@ -844,9 +857,7 @@ _dbg__cmd_SetAllRegs:
*/
_dbg__nop:
stmfd sp!, {lr}
- _dbg_outputMsgStatusErrCode MSG_ERRIMPL /* Stub, not implemented yet */
- bl dbg__putDebugMsg /* Send error response to the GDB server */
- ldmfd sp!, {pc}
+ b __dbg__procUnimplementedError
/* _dbg__cmd_ReadMem
* Read Memory Contents Command Handler