target/arm_dpm: report vector catch as breakpoint
Commit 4afa32ece1 ("aarch64: unify armv7-a and armv8
debug entry decoding")
probably unintentionally removed DSCR_ENTRY_VECT_CATCH from
reported debug entry reasons. Note the discrepancy between
'case DSCR_ENTRY_BKPT_INSTR:' and its comment.
Hitting vector catch was reported as DBG_REASON_UNDEFINED.
DBG_REASON_UNDEFINED disturbed hwthread/gdb cooperation and
gdb reported the wrong thread as stopped by SIGTRAP.
Revert to the original functionality and report vector
catch as a breakpoint.
Change-Id: I12e938182cff8f633decba340000cfbb7b112ae3
Signed-off-by: Tomas Vanek <vanekt@fbl.cz>
Reviewed-on: https://review.openocd.org/c/openocd/+/9209
Tested-by: jenkins
Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
This commit is contained in:
@@ -1064,7 +1064,8 @@ void arm_dpm_report_dscr(struct arm_dpm *dpm, uint32_t dscr)
|
||||
target->debug_reason = DBG_REASON_DBGRQ;
|
||||
break;
|
||||
case DSCR_ENTRY_BREAKPOINT: /* HW breakpoint */
|
||||
case DSCR_ENTRY_BKPT_INSTR: /* vector catch */
|
||||
case DSCR_ENTRY_BKPT_INSTR: /* SW BKPT */
|
||||
case DSCR_ENTRY_VECT_CATCH: /* vector catch */
|
||||
target->debug_reason = DBG_REASON_BREAKPOINT;
|
||||
break;
|
||||
case DSCR_ENTRY_IMPRECISE_WATCHPT: /* asynch watchpoint */
|
||||
|
||||
Reference in New Issue
Block a user