[haiku-commits] haiku: hrev44768 - src/apps/debugger/debugger_interface

  • From: anevilyak@xxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Mon, 5 Nov 2012 20:49:11 +0100 (CET)

hrev44768 adds 1 changeset to branch 'master'
old head: ca0d271159445d49707998406c66e97c9d9e61c9
new head: 35cadd6f3cda83bfd58be558ce287157acc9174e

----------------------------------------------------------------------------

35cadd6: Add watchpoint support in DebuggerInterface.

                                      [ Rene Gollent <anevilyak@xxxxxxxxx> ]

----------------------------------------------------------------------------

Revision:    hrev44768
Commit:      35cadd6f3cda83bfd58be558ce287157acc9174e
URL:         http://cgit.haiku-os.org/haiku/commit/?id=35cadd6
Author:      Rene Gollent <anevilyak@xxxxxxxxx>
Date:        Mon Nov  5 18:15:46 2012 UTC

----------------------------------------------------------------------------

2 files changed, 40 insertions(+), 2 deletions(-)
.../debugger_interface/DebuggerInterface.cpp     | 36 +++++++++++++++++++-
.../debugger_interface/DebuggerInterface.h       |  6 +++-

----------------------------------------------------------------------------

diff --git a/src/apps/debugger/debugger_interface/DebuggerInterface.cpp 
b/src/apps/debugger/debugger_interface/DebuggerInterface.cpp
index 2504389..8a47162 100644
--- a/src/apps/debugger/debugger_interface/DebuggerInterface.cpp
+++ b/src/apps/debugger/debugger_interface/DebuggerInterface.cpp
@@ -1,6 +1,6 @@
 /*
  * Copyright 2009-2012, Ingo Weinhold, ingo_weinhold@xxxxxxx
- * Copyright 2010, Rene Gollent, rene@xxxxxxxxxxxx
+ * Copyright 2010-2012, Rene Gollent, rene@xxxxxxxxxxxx
  * Distributed under the terms of the MIT License.
  */
 
@@ -426,6 +426,40 @@ DebuggerInterface::UninstallBreakpoint(target_addr_t 
address)
 
 
 status_t
+DebuggerInterface::InstallWatchpoint(target_addr_t address, uint32 type,
+       int32 length)
+{
+       DebugContextGetter contextGetter(fDebugContextPool);
+
+       debug_nub_set_watchpoint message;
+       message.reply_port = contextGetter.Context()->reply_port;
+       message.address = (void*)(addr_t)address;
+       message.type = type;
+       message.length = length;
+
+       debug_nub_set_watchpoint_reply reply;
+
+       status_t error = send_debug_message(contextGetter.Context(),
+               B_DEBUG_MESSAGE_SET_WATCHPOINT, &message, sizeof(message), 
&reply,
+               sizeof(reply));
+       return error == B_OK ? reply.error : error;
+}
+
+
+status_t
+DebuggerInterface::UninstallWatchpoint(target_addr_t address)
+{
+       DebugContextGetter contextGetter(fDebugContextPool);
+
+       debug_nub_clear_watchpoint message;
+       message.address = (void*)(addr_t)address;
+
+       return write_port(fNubPort, B_DEBUG_MESSAGE_CLEAR_WATCHPOINT,
+               &message, sizeof(message));
+}
+
+
+status_t
 DebuggerInterface::GetThreadInfos(BObjectList<ThreadInfo>& infos)
 {
        thread_info threadInfo;
diff --git a/src/apps/debugger/debugger_interface/DebuggerInterface.h 
b/src/apps/debugger/debugger_interface/DebuggerInterface.h
index c700034..bdf9b2c 100644
--- a/src/apps/debugger/debugger_interface/DebuggerInterface.h
+++ b/src/apps/debugger/debugger_interface/DebuggerInterface.h
@@ -1,6 +1,6 @@
 /*
  * Copyright 2009, Ingo Weinhold, ingo_weinhold@xxxxxxx
- * Copyright 2010, Rene Gollent, rene@xxxxxxxxxxxx
+ * Copyright 2010-2012, Rene Gollent, rene@xxxxxxxxxxxx
  * Distributed under the terms of the MIT License.
  */
 #ifndef DEBUGGER_INTERFACE_H
@@ -48,6 +48,10 @@ public:
        virtual status_t                        InstallBreakpoint(target_addr_t 
address);
        virtual status_t                        
UninstallBreakpoint(target_addr_t address);
 
+       virtual status_t                        InstallWatchpoint(target_addr_t 
address,
+                                                                       uint32 
type, int32 length);
+       virtual status_t                        
UninstallWatchpoint(target_addr_t address);
+
        virtual status_t                        
GetThreadInfos(BObjectList<ThreadInfo>& infos);
        virtual status_t                        
GetImageInfos(BObjectList<ImageInfo>& infos);
        virtual status_t                        GetSymbolInfos(team_id team, 
image_id image,


Other related posts:

  • » [haiku-commits] haiku: hrev44768 - src/apps/debugger/debugger_interface - anevilyak