Add watchpoint support in DebuggerInterface.
This commit is contained in:
parent
a1a6f98a47
commit
cb51c20c26
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2009-2012, Ingo Weinhold, ingo_weinhold@gmx.de.
|
* Copyright 2009-2012, Ingo Weinhold, ingo_weinhold@gmx.de.
|
||||||
* Copyright 2010, Rene Gollent, rene@gollent.com.
|
* Copyright 2010-2012, Rene Gollent, rene@gollent.com.
|
||||||
* Distributed under the terms of the MIT License.
|
* Distributed under the terms of the MIT License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -425,6 +425,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
|
status_t
|
||||||
DebuggerInterface::GetThreadInfos(BObjectList<ThreadInfo>& infos)
|
DebuggerInterface::GetThreadInfos(BObjectList<ThreadInfo>& infos)
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de.
|
* Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de.
|
||||||
* Copyright 2010, Rene Gollent, rene@gollent.com.
|
* Copyright 2010-2012, Rene Gollent, rene@gollent.com.
|
||||||
* Distributed under the terms of the MIT License.
|
* Distributed under the terms of the MIT License.
|
||||||
*/
|
*/
|
||||||
#ifndef DEBUGGER_INTERFACE_H
|
#ifndef DEBUGGER_INTERFACE_H
|
||||||
@ -48,6 +48,10 @@ public:
|
|||||||
virtual status_t InstallBreakpoint(target_addr_t address);
|
virtual status_t InstallBreakpoint(target_addr_t address);
|
||||||
virtual status_t UninstallBreakpoint(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 GetThreadInfos(BObjectList<ThreadInfo>& infos);
|
||||||
virtual status_t GetImageInfos(BObjectList<ImageInfo>& infos);
|
virtual status_t GetImageInfos(BObjectList<ImageInfo>& infos);
|
||||||
virtual status_t GetSymbolInfos(team_id team, image_id image,
|
virtual status_t GetSymbolInfos(team_id team, image_id image,
|
||||||
|
Loading…
Reference in New Issue
Block a user