Extend UserInterfaceListener to allow marking...

...breakpoints as hidden. Adjust TeamDebugger accordingly.
This commit is contained in:
Rene Gollent
2013-06-15 14:51:18 -04:00
parent b9461dc8cd
commit 468c8dfab7
3 changed files with 18 additions and 7 deletions
+15 -4
View File
@@ -582,10 +582,14 @@ TeamDebugger::MessageReceived(BMessage* message)
if (message->FindBool("enabled", &enabled) != B_OK) if (message->FindBool("enabled", &enabled) != B_OK)
enabled = true; enabled = true;
bool hidden;
if (message->FindBool("hidden", &hidden) != B_OK)
hidden = false;
if (breakpoint != NULL) if (breakpoint != NULL)
_HandleSetUserBreakpoint(breakpoint, enabled); _HandleSetUserBreakpoint(breakpoint, enabled);
else else
_HandleSetUserBreakpoint(address, enabled); _HandleSetUserBreakpoint(address, enabled, hidden);
} else { } else {
if (breakpoint != NULL) if (breakpoint != NULL)
_HandleClearUserBreakpoint(breakpoint); _HandleClearUserBreakpoint(breakpoint);
@@ -840,11 +844,13 @@ TeamDebugger::ThreadActionRequested(thread_id threadID,
void void
TeamDebugger::SetBreakpointRequested(target_addr_t address, bool enabled) TeamDebugger::SetBreakpointRequested(target_addr_t address, bool enabled,
bool hidden)
{ {
BMessage message(MSG_SET_BREAKPOINT); BMessage message(MSG_SET_BREAKPOINT);
message.AddUInt64("address", (uint64)address); message.AddUInt64("address", (uint64)address);
message.AddBool("enabled", enabled); message.AddBool("enabled", enabled);
message.AddBool("hidden", hidden);
PostMessage(&message); PostMessage(&message);
} }
@@ -1431,10 +1437,11 @@ TeamDebugger::_HandleImageFileChanged(image_id imageID)
void void
TeamDebugger::_HandleSetUserBreakpoint(target_addr_t address, bool enabled) TeamDebugger::_HandleSetUserBreakpoint(target_addr_t address, bool enabled,
bool hidden)
{ {
TRACE_CONTROL("TeamDebugger::_HandleSetUserBreakpoint(%#" B_PRIx64 TRACE_CONTROL("TeamDebugger::_HandleSetUserBreakpoint(%#" B_PRIx64
", %d)\n", address, enabled); ", %d, %d)\n", address, enabled, hidden);
// check whether there already is a breakpoint // check whether there already is a breakpoint
AutoLocker< ::Team> locker(fTeam); AutoLocker< ::Team> locker(fTeam);
@@ -1506,6 +1513,8 @@ TeamDebugger::_HandleSetUserBreakpoint(target_addr_t address, bool enabled)
return; return;
userBreakpointReference.SetTo(userBreakpoint, true); userBreakpointReference.SetTo(userBreakpoint, true);
userBreakpoint->SetHidden(hidden);
TRACE_CONTROL(" created user breakpoint: %p\n", userBreakpoint); TRACE_CONTROL(" created user breakpoint: %p\n", userBreakpoint);
// iterate through all function instances and create // iterate through all function instances and create
@@ -1795,6 +1804,8 @@ TeamDebugger::_LoadSettings()
return; return;
BReference<UserBreakpoint> breakpointReference(breakpoint, true); BReference<UserBreakpoint> breakpointReference(breakpoint, true);
breakpoint->SetHidden(breakpointSetting->IsHidden());
// install it // install it
fBreakpointManager->InstallUserBreakpoint(breakpoint, fBreakpointManager->InstallUserBreakpoint(breakpoint,
breakpointSetting->IsEnabled()); breakpointSetting->IsEnabled());
+2 -2
View File
@@ -70,7 +70,7 @@ private:
virtual void ThreadActionRequested(thread_id threadID, virtual void ThreadActionRequested(thread_id threadID,
uint32 action, target_addr_t address); uint32 action, target_addr_t address);
virtual void SetBreakpointRequested(target_addr_t address, virtual void SetBreakpointRequested(target_addr_t address,
bool enabled); bool enabled, bool hidden = false);
virtual void SetBreakpointEnabledRequested( virtual void SetBreakpointEnabledRequested(
UserBreakpoint* breakpoint, UserBreakpoint* breakpoint,
bool enabled); bool enabled);
@@ -145,7 +145,7 @@ private:
void _HandleImageFileChanged(image_id imageID); void _HandleImageFileChanged(image_id imageID);
void _HandleSetUserBreakpoint(target_addr_t address, void _HandleSetUserBreakpoint(target_addr_t address,
bool enabled); bool enabled, bool hidden);
void _HandleSetUserBreakpoint( void _HandleSetUserBreakpoint(
UserBreakpoint* breakpoint, bool enabled); UserBreakpoint* breakpoint, bool enabled);
void _HandleClearUserBreakpoint( void _HandleClearUserBreakpoint(
@@ -95,7 +95,7 @@ public:
target_addr_t address = 0) = 0; target_addr_t address = 0) = 0;
virtual void SetBreakpointRequested(target_addr_t address, virtual void SetBreakpointRequested(target_addr_t address,
bool enabled) = 0; bool enabled, bool hidden = false) = 0;
virtual void SetBreakpointEnabledRequested( virtual void SetBreakpointEnabledRequested(
UserBreakpoint* breakpoint, UserBreakpoint* breakpoint,
bool enabled) = 0; bool enabled) = 0;