Extend UserInterfaceListener to allow marking...
...breakpoints as hidden. Adjust TeamDebugger accordingly.
This commit is contained in:
@@ -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());
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user