Added {Install,Uninstall}Breakpoint().

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31188 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ingo Weinhold
2009-06-22 21:44:09 +00:00
parent e20dc8a7b7
commit 7c439b2356
2 changed files with 32 additions and 0 deletions
@@ -363,6 +363,35 @@ DebuggerInterface::SingleStepThread(thread_id thread)
}
status_t
DebuggerInterface::InstallBreakpoint(target_addr_t address)
{
DebugContextGetter contextGetter(fDebugContextPool);
debug_nub_set_breakpoint message;
message.reply_port = contextGetter.Context()->reply_port;
message.address = (void*)(addr_t)address;
debug_nub_set_breakpoint_reply reply;
status_t error = send_debug_message(contextGetter.Context(),
B_DEBUG_MESSAGE_SET_BREAKPOINT, &message, sizeof(message), &reply,
sizeof(reply));
return error == B_OK ? reply.error : error;
}
status_t
DebuggerInterface::UninstallBreakpoint(target_addr_t address)
{
debug_nub_clear_breakpoint message;
message.address = (void*)(addr_t)address;
return write_port(fNubPort, B_DEBUG_MESSAGE_CLEAR_BREAKPOINT,
&message, sizeof(message));
}
status_t
DebuggerInterface::GetThreadInfos(BObjectList<ThreadInfo>& infos)
{
@@ -40,6 +40,9 @@ public:
virtual status_t StopThread(thread_id thread);
virtual status_t SingleStepThread(thread_id thread);
virtual status_t InstallBreakpoint(target_addr_t address);
virtual status_t UninstallBreakpoint(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,