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)
enabled = true;
bool hidden;
if (message->FindBool("hidden", &hidden) != B_OK)
hidden = false;
if (breakpoint != NULL)
_HandleSetUserBreakpoint(breakpoint, enabled);
else
_HandleSetUserBreakpoint(address, enabled);
_HandleSetUserBreakpoint(address, enabled, hidden);
} else {
if (breakpoint != NULL)
_HandleClearUserBreakpoint(breakpoint);
@@ -840,11 +844,13 @@ TeamDebugger::ThreadActionRequested(thread_id threadID,
void
TeamDebugger::SetBreakpointRequested(target_addr_t address, bool enabled)
TeamDebugger::SetBreakpointRequested(target_addr_t address, bool enabled,
bool hidden)
{
BMessage message(MSG_SET_BREAKPOINT);
message.AddUInt64("address", (uint64)address);
message.AddBool("enabled", enabled);
message.AddBool("hidden", hidden);
PostMessage(&message);
}
@@ -1431,10 +1437,11 @@ TeamDebugger::_HandleImageFileChanged(image_id imageID)
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
", %d)\n", address, enabled);
", %d, %d)\n", address, enabled, hidden);
// check whether there already is a breakpoint
AutoLocker< ::Team> locker(fTeam);
@@ -1506,6 +1513,8 @@ TeamDebugger::_HandleSetUserBreakpoint(target_addr_t address, bool enabled)
return;
userBreakpointReference.SetTo(userBreakpoint, true);
userBreakpoint->SetHidden(hidden);
TRACE_CONTROL(" created user breakpoint: %p\n", userBreakpoint);
// iterate through all function instances and create
@@ -1795,6 +1804,8 @@ TeamDebugger::_LoadSettings()
return;
BReference<UserBreakpoint> breakpointReference(breakpoint, true);
breakpoint->SetHidden(breakpointSetting->IsHidden());
// install it
fBreakpointManager->InstallUserBreakpoint(breakpoint,
breakpointSetting->IsEnabled());
+2 -2
View File
@@ -70,7 +70,7 @@ private:
virtual void ThreadActionRequested(thread_id threadID,
uint32 action, target_addr_t address);
virtual void SetBreakpointRequested(target_addr_t address,
bool enabled);
bool enabled, bool hidden = false);
virtual void SetBreakpointEnabledRequested(
UserBreakpoint* breakpoint,
bool enabled);
@@ -145,7 +145,7 @@ private:
void _HandleImageFileChanged(image_id imageID);
void _HandleSetUserBreakpoint(target_addr_t address,
bool enabled);
bool enabled, bool hidden);
void _HandleSetUserBreakpoint(
UserBreakpoint* breakpoint, bool enabled);
void _HandleClearUserBreakpoint(
@@ -95,7 +95,7 @@ public:
target_addr_t address = 0) = 0;
virtual void SetBreakpointRequested(target_addr_t address,
bool enabled) = 0;
bool enabled, bool hidden = false) = 0;
virtual void SetBreakpointEnabledRequested(
UserBreakpoint* breakpoint,
bool enabled) = 0;