libdebugger: ARM fixes for Cortex-A8 and ARM mode.

- Fix destorying the target and thread parts.
- Fix the ARM backend to support Cortex-A8 and ARM mode code.
- Use the DBGDSCR interrupt mask when single stepping.
- Use the DBGDSCR method of entry to debug mode to filter the
  execptions.
- Add support for BSPs to control the ARM backend.
This commit is contained in:
Chris Johns
2019-06-25 21:07:40 +10:00
parent 98d6792376
commit cb1e8497df
6 changed files with 728 additions and 245 deletions

View File

@@ -362,6 +362,7 @@ rtems_debugger_thread_system_resume(bool detaching)
rtems_debugger_thread* thread = &current[i];
rtems_status_code sc;
int rr;
bool has_exception;
/*
* Check if resuming, which can be continuing, a step, or stepping a
* range.
@@ -380,11 +381,13 @@ rtems_debugger_thread_system_resume(bool detaching)
r = rr;
}
}
has_exception =
rtems_debugger_thread_flag(thread,
RTEMS_DEBUGGER_THREAD_FLAG_EXCEPTION);
if (rtems_debugger_verbose())
rtems_debugger_printf("rtems-db: sys: : resume: 0x%08" PRIx32 "\n",
thread->id);
if (rtems_debugger_thread_flag(thread,
RTEMS_DEBUGGER_THREAD_FLAG_EXCEPTION)) {
rtems_debugger_printf("rtems-db: sys: : resume: 0x%08" PRIx32 " %c\n",
thread->id, has_exception ? 'E' : ' ');
if (has_exception) {
rtems_debugger_target_exception_thread_resume(thread);
} else {
sc = rtems_task_resume(thread->id);