Added transparent software breakpoint support for user debuggers:

* The bulk of the work -- i.e. juggling the software and hardware breakpoints,
  watchpoints, and memory reads/writes -- is done in the new class
  BreakpointManager.
* For the architectures a few capability macros have to be defined, one
  pointing to the software breakpoint instruction opcode. Done for x86.
* Some more simplifications in the user debugger code, made possible by the
  recently introduced debugger_changed_condition attribute.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31214 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ingo Weinhold
2009-06-23 21:03:57 +00:00
parent 63e909772d
commit b0f12d64f4
9 changed files with 1078 additions and 242 deletions
+4
View File
@@ -20,6 +20,7 @@
#define B_DEBUG_PROFILE_BUFFER_FLUSH_THRESHOLD 70 /* in % */
struct BreakpointManager;
struct ConditionVariable;
struct function_profile_info;
struct thread;
@@ -70,6 +71,9 @@ struct team_debug_info {
// variable the thread won't be deleted (until unsetting it) -- it might
// be removed from the team hash table, though.
struct BreakpointManager* breakpoint_manager;
// manages hard- and software breakpoints
struct arch_team_debug_info arch_info;
};