Debugger: Add signal settings and listener hooks.
Team: - Add settings and accessors for signal dispositions. - Add event definitions and listener hooks for signal disposition changes.
This commit is contained in:
@@ -27,6 +27,9 @@ enum {
|
|||||||
MSG_STOP_ON_IMAGE_LOAD = 'tsil',
|
MSG_STOP_ON_IMAGE_LOAD = 'tsil',
|
||||||
MSG_ADD_STOP_IMAGE_NAME = 'asin',
|
MSG_ADD_STOP_IMAGE_NAME = 'asin',
|
||||||
MSG_REMOVE_STOP_IMAGE_NAME = 'rsin',
|
MSG_REMOVE_STOP_IMAGE_NAME = 'rsin',
|
||||||
|
MSG_SET_DEFAULT_SIGNAL_DISPOSITION = 'sdsd',
|
||||||
|
MSG_SET_CUSTOM_SIGNAL_DISPOSITION = 'scsd',
|
||||||
|
MSG_REMOVE_CUSTOM_SIGNAL_DISPOSITION = 'rcsd',
|
||||||
|
|
||||||
MSG_THREAD_STATE_CHANGED = 'tsch',
|
MSG_THREAD_STATE_CHANGED = 'tsch',
|
||||||
MSG_THREAD_CPU_STATE_CHANGED = 'tcsc',
|
MSG_THREAD_CPU_STATE_CHANGED = 'tcsc',
|
||||||
|
|||||||
@@ -685,6 +685,43 @@ TeamDebugger::MessageReceived(BMessage* message)
|
|||||||
|
|
||||||
AutoLocker< ::Team> teamLocker(fTeam);
|
AutoLocker< ::Team> teamLocker(fTeam);
|
||||||
fTeam->RemoveStopImageName(imageName);
|
fTeam->RemoveStopImageName(imageName);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case MSG_SET_DEFAULT_SIGNAL_DISPOSITION:
|
||||||
|
{
|
||||||
|
int32 disposition;
|
||||||
|
if (message->FindInt32("disposition", &disposition) != B_OK)
|
||||||
|
break;
|
||||||
|
|
||||||
|
AutoLocker< ::Team> teamLocker(fTeam);
|
||||||
|
fTeam->SetDefaultSignalDisposition(disposition);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case MSG_SET_CUSTOM_SIGNAL_DISPOSITION:
|
||||||
|
{
|
||||||
|
int32 signal;
|
||||||
|
int32 disposition;
|
||||||
|
if (message->FindInt32("signal", &signal) != B_OK
|
||||||
|
|| message->FindInt32("disposition", &disposition) != B_OK) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
AutoLocker< ::Team> teamLocker(fTeam);
|
||||||
|
fTeam->SetCustomSignalDisposition(signal, disposition);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case MSG_REMOVE_CUSTOM_SIGNAL_DISPOSITION:
|
||||||
|
{
|
||||||
|
int32 signal;
|
||||||
|
if (message->FindInt32("signal", &signal) != B_OK)
|
||||||
|
break;
|
||||||
|
|
||||||
|
AutoLocker< ::Team> teamLocker(fTeam);
|
||||||
|
fTeam->RemoveCustomSignalDisposition(signal);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case MSG_SET_WATCHPOINT:
|
case MSG_SET_WATCHPOINT:
|
||||||
@@ -1105,6 +1142,35 @@ TeamDebugger::RemoveStopImageNameRequested(const char* name)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
TeamDebugger::SetDefaultSignalDispositionRequested(int32 disposition)
|
||||||
|
{
|
||||||
|
BMessage message(MSG_SET_DEFAULT_SIGNAL_DISPOSITION);
|
||||||
|
message.AddInt32("disposition", disposition);
|
||||||
|
PostMessage(&message);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
TeamDebugger::SetCustomSignalDispositionRequested(int32 signal,
|
||||||
|
int32 disposition)
|
||||||
|
{
|
||||||
|
BMessage message(MSG_SET_CUSTOM_SIGNAL_DISPOSITION);
|
||||||
|
message.AddInt32("signal", signal);
|
||||||
|
message.AddInt32("disposition", disposition);
|
||||||
|
PostMessage(&message);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
TeamDebugger::RemoveCustomSignalDispositionRequested(int32 signal)
|
||||||
|
{
|
||||||
|
BMessage message(MSG_REMOVE_CUSTOM_SIGNAL_DISPOSITION);
|
||||||
|
message.AddInt32("signal", signal);
|
||||||
|
PostMessage(&message);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
TeamDebugger::ClearBreakpointRequested(UserBreakpoint* breakpoint)
|
TeamDebugger::ClearBreakpointRequested(UserBreakpoint* breakpoint)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -97,6 +97,13 @@ private:
|
|||||||
virtual void RemoveStopImageNameRequested(
|
virtual void RemoveStopImageNameRequested(
|
||||||
const char* name);
|
const char* name);
|
||||||
|
|
||||||
|
virtual void SetDefaultSignalDispositionRequested(
|
||||||
|
int32 disposition);
|
||||||
|
virtual void SetCustomSignalDispositionRequested(
|
||||||
|
int32 signal, int32 disposition);
|
||||||
|
virtual void RemoveCustomSignalDispositionRequested(
|
||||||
|
int32 signal);
|
||||||
|
|
||||||
virtual void SetWatchpointRequested(target_addr_t address,
|
virtual void SetWatchpointRequested(target_addr_t address,
|
||||||
uint32 type, int32 length, bool enabled);
|
uint32 type, int32 length, bool enabled);
|
||||||
virtual void SetWatchpointEnabledRequested(
|
virtual void SetWatchpointEnabledRequested(
|
||||||
|
|||||||
@@ -16,6 +16,7 @@
|
|||||||
#include "FileSourceCode.h"
|
#include "FileSourceCode.h"
|
||||||
#include "Function.h"
|
#include "Function.h"
|
||||||
#include "ImageDebugInfo.h"
|
#include "ImageDebugInfo.h"
|
||||||
|
#include "SignalDispositionTypes.h"
|
||||||
#include "SourceCode.h"
|
#include "SourceCode.h"
|
||||||
#include "SpecificImageDebugInfo.h"
|
#include "SpecificImageDebugInfo.h"
|
||||||
#include "Statement.h"
|
#include "Statement.h"
|
||||||
@@ -80,7 +81,8 @@ Team::Team(team_id teamID, TeamMemory* teamMemory, Architecture* architecture,
|
|||||||
fArchitecture(architecture),
|
fArchitecture(architecture),
|
||||||
fDebugInfo(debugInfo),
|
fDebugInfo(debugInfo),
|
||||||
fStopOnImageLoad(false),
|
fStopOnImageLoad(false),
|
||||||
fStopImageNameListEnabled(false)
|
fStopImageNameListEnabled(false),
|
||||||
|
fDefaultSignalDisposition(SIGNAL_DISPOSITION_IGNORE)
|
||||||
{
|
{
|
||||||
fDebugInfo->AcquireReference();
|
fDebugInfo->AcquireReference();
|
||||||
}
|
}
|
||||||
@@ -312,6 +314,69 @@ Team::StopImageNames() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
Team::SetDefaultSignalDisposition(int32 disposition)
|
||||||
|
{
|
||||||
|
if (disposition != fDefaultSignalDisposition) {
|
||||||
|
fDefaultSignalDisposition = disposition;
|
||||||
|
NotifyDefaultSignalDispositionChanged(disposition);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool
|
||||||
|
Team::SetCustomSignalDisposition(int32 signal, int32 disposition)
|
||||||
|
{
|
||||||
|
SignalDispositionMappings::iterator it = fCustomSignalDispositions.find(
|
||||||
|
signal);
|
||||||
|
if (it != fCustomSignalDispositions.end() && it->second == disposition)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
try {
|
||||||
|
fCustomSignalDispositions[signal] = disposition;
|
||||||
|
} catch (...) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
NotifyCustomSignalDispositionChanged(signal, disposition);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
Team::RemoveCustomSignalDisposition(int32 signal)
|
||||||
|
{
|
||||||
|
SignalDispositionMappings::iterator it = fCustomSignalDispositions.find(
|
||||||
|
signal);
|
||||||
|
if (it == fCustomSignalDispositions.end())
|
||||||
|
return;
|
||||||
|
|
||||||
|
fCustomSignalDispositions.erase(it);
|
||||||
|
|
||||||
|
NotifyCustomSignalDispositionRemoved(signal);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int32
|
||||||
|
Team::SignalDispositionFor(int32 signal) const
|
||||||
|
{
|
||||||
|
SignalDispositionMappings::const_iterator it
|
||||||
|
= fCustomSignalDispositions.find(signal);
|
||||||
|
if (it != fCustomSignalDispositions.end())
|
||||||
|
return it->second;
|
||||||
|
|
||||||
|
return fDefaultSignalDisposition;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const SignalDispositionMappings&
|
||||||
|
Team::GetSignalDispositionMappings() const
|
||||||
|
{
|
||||||
|
return fCustomSignalDispositions;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
bool
|
bool
|
||||||
Team::AddBreakpoint(Breakpoint* breakpoint)
|
Team::AddBreakpoint(Breakpoint* breakpoint)
|
||||||
{
|
{
|
||||||
@@ -687,6 +752,45 @@ Team::NotifyStopImageNameRemoved(const BString& name)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
Team::NotifyDefaultSignalDispositionChanged(int32 disposition)
|
||||||
|
{
|
||||||
|
for (ListenerList::Iterator it = fListeners.GetIterator();
|
||||||
|
Listener* listener = it.Next();) {
|
||||||
|
listener->DefaultSignalDispositionChanged(
|
||||||
|
DefaultSignalDispositionEvent(
|
||||||
|
TEAM_EVENT_DEFAULT_SIGNAL_DISPOSITION_CHANGED, this,
|
||||||
|
disposition));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
Team::NotifyCustomSignalDispositionChanged(int32 signal, int32 disposition)
|
||||||
|
{
|
||||||
|
for (ListenerList::Iterator it = fListeners.GetIterator();
|
||||||
|
Listener* listener = it.Next();) {
|
||||||
|
listener->CustomSignalDispositionChanged(
|
||||||
|
CustomSignalDispositionEvent(
|
||||||
|
TEAM_EVENT_CUSTOM_SIGNAL_DISPOSITION_CHANGED, this,
|
||||||
|
signal, disposition));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
Team::NotifyCustomSignalDispositionRemoved(int32 signal)
|
||||||
|
{
|
||||||
|
for (ListenerList::Iterator it = fListeners.GetIterator();
|
||||||
|
Listener* listener = it.Next();) {
|
||||||
|
listener->CustomSignalDispositionRemoved(
|
||||||
|
CustomSignalDispositionEvent(
|
||||||
|
TEAM_EVENT_CUSTOM_SIGNAL_DISPOSITION_REMOVED, this,
|
||||||
|
signal, SIGNAL_DISPOSITION_IGNORE));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
Team::NotifyConsoleOutputReceived(int32 fd, const BString& output)
|
Team::NotifyConsoleOutputReceived(int32 fd, const BString& output)
|
||||||
{
|
{
|
||||||
@@ -841,6 +945,31 @@ Team::ImageLoadNameEvent::ImageLoadNameEvent(uint32 type, Team* team,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// #pragma mark - DefaultSignalDispositionEvent
|
||||||
|
|
||||||
|
|
||||||
|
Team::DefaultSignalDispositionEvent::DefaultSignalDispositionEvent(uint32 type,
|
||||||
|
Team* team, int32 disposition)
|
||||||
|
:
|
||||||
|
Event(type, team),
|
||||||
|
fDefaultDisposition(disposition)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// #pragma mark - CustomSignalDispositionEvent
|
||||||
|
|
||||||
|
|
||||||
|
Team::CustomSignalDispositionEvent::CustomSignalDispositionEvent(uint32 type,
|
||||||
|
Team* team, int32 signal, int32 disposition)
|
||||||
|
:
|
||||||
|
Event(type, team),
|
||||||
|
fSignal(signal),
|
||||||
|
fDisposition(disposition)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// #pragma mark - BreakpointEvent
|
// #pragma mark - BreakpointEvent
|
||||||
|
|
||||||
|
|
||||||
@@ -991,6 +1120,27 @@ Team::Listener::StopOnImageLoadNameRemoved(
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
Team::Listener::DefaultSignalDispositionChanged(
|
||||||
|
const Team::DefaultSignalDispositionEvent& event)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
Team::Listener::CustomSignalDispositionChanged(
|
||||||
|
const Team::CustomSignalDispositionEvent& event)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
Team::Listener::CustomSignalDispositionRemoved(
|
||||||
|
const Team::CustomSignalDispositionEvent& event)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
Team::Listener::ConsoleOutputReceived(const Team::ConsoleOutputEvent& event)
|
Team::Listener::ConsoleOutputReceived(const Team::ConsoleOutputEvent& event)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,11 +1,12 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de.
|
* Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de.
|
||||||
* Copyright 2013-2014, Rene Gollent, rene@gollent.com.
|
* Copyright 2013-2015, Rene Gollent, rene@gollent.com.
|
||||||
* Distributed under the terms of the MIT License.
|
* Distributed under the terms of the MIT License.
|
||||||
*/
|
*/
|
||||||
#ifndef TEAM_H
|
#ifndef TEAM_H
|
||||||
#define TEAM_H
|
#define TEAM_H
|
||||||
|
|
||||||
|
#include <map>
|
||||||
|
|
||||||
#include <Locker.h>
|
#include <Locker.h>
|
||||||
#include <StringList.h>
|
#include <StringList.h>
|
||||||
@@ -38,6 +39,10 @@ enum {
|
|||||||
TEAM_EVENT_IMAGE_LOAD_NAME_ADDED,
|
TEAM_EVENT_IMAGE_LOAD_NAME_ADDED,
|
||||||
TEAM_EVENT_IMAGE_LOAD_NAME_REMOVED,
|
TEAM_EVENT_IMAGE_LOAD_NAME_REMOVED,
|
||||||
|
|
||||||
|
TEAM_EVENT_DEFAULT_SIGNAL_DISPOSITION_CHANGED,
|
||||||
|
TEAM_EVENT_CUSTOM_SIGNAL_DISPOSITION_CHANGED,
|
||||||
|
TEAM_EVENT_CUSTOM_SIGNAL_DISPOSITION_REMOVED,
|
||||||
|
|
||||||
TEAM_EVENT_CONSOLE_OUTPUT_RECEIVED,
|
TEAM_EVENT_CONSOLE_OUTPUT_RECEIVED,
|
||||||
|
|
||||||
TEAM_EVENT_BREAKPOINT_ADDED,
|
TEAM_EVENT_BREAKPOINT_ADDED,
|
||||||
@@ -71,6 +76,9 @@ class UserBreakpoint;
|
|||||||
class Value;
|
class Value;
|
||||||
|
|
||||||
|
|
||||||
|
typedef std::map<int32, int32> SignalDispositionMappings;
|
||||||
|
|
||||||
|
|
||||||
class Team {
|
class Team {
|
||||||
public:
|
public:
|
||||||
class Event;
|
class Event;
|
||||||
@@ -81,6 +89,8 @@ public:
|
|||||||
class ImageEvent;
|
class ImageEvent;
|
||||||
class ImageLoadEvent;
|
class ImageLoadEvent;
|
||||||
class ImageLoadNameEvent;
|
class ImageLoadNameEvent;
|
||||||
|
class DefaultSignalDispositionEvent;
|
||||||
|
class CustomSignalDispositionEvent;
|
||||||
class ThreadEvent;
|
class ThreadEvent;
|
||||||
class UserBreakpointEvent;
|
class UserBreakpointEvent;
|
||||||
class WatchpointEvent;
|
class WatchpointEvent;
|
||||||
@@ -139,6 +149,18 @@ public:
|
|||||||
bool StopImageNameListEnabled() const
|
bool StopImageNameListEnabled() const
|
||||||
{ return fStopImageNameListEnabled; }
|
{ return fStopImageNameListEnabled; }
|
||||||
|
|
||||||
|
void SetDefaultSignalDisposition(int32 disposition);
|
||||||
|
int32 DefaultSignalDisposition() const
|
||||||
|
{ return fDefaultSignalDisposition; }
|
||||||
|
bool SetCustomSignalDisposition(int32 signal,
|
||||||
|
int32 disposition);
|
||||||
|
void RemoveCustomSignalDisposition(int32 signal);
|
||||||
|
int32 SignalDispositionFor(int32 signal) const;
|
||||||
|
// if no custom disposition is found,
|
||||||
|
// returns default
|
||||||
|
const SignalDispositionMappings&
|
||||||
|
GetSignalDispositionMappings() const;
|
||||||
|
|
||||||
bool AddBreakpoint(Breakpoint* breakpoint);
|
bool AddBreakpoint(Breakpoint* breakpoint);
|
||||||
// takes over reference (also on error)
|
// takes over reference (also on error)
|
||||||
void RemoveBreakpoint(Breakpoint* breakpoint);
|
void RemoveBreakpoint(Breakpoint* breakpoint);
|
||||||
@@ -212,6 +234,14 @@ public:
|
|||||||
void NotifyStopImageNameRemoved(
|
void NotifyStopImageNameRemoved(
|
||||||
const BString& name);
|
const BString& name);
|
||||||
|
|
||||||
|
// service methods for Signal Disposition settings
|
||||||
|
void NotifyDefaultSignalDispositionChanged(
|
||||||
|
int32 newDisposition);
|
||||||
|
void NotifyCustomSignalDispositionChanged(
|
||||||
|
int32 signal, int32 disposition);
|
||||||
|
void NotifyCustomSignalDispositionRemoved(
|
||||||
|
int32 signal);
|
||||||
|
|
||||||
// service methods for console output
|
// service methods for console output
|
||||||
void NotifyConsoleOutputReceived(
|
void NotifyConsoleOutputReceived(
|
||||||
int32 fd, const BString& output);
|
int32 fd, const BString& output);
|
||||||
@@ -259,6 +289,9 @@ private:
|
|||||||
bool fStopOnImageLoad;
|
bool fStopOnImageLoad;
|
||||||
bool fStopImageNameListEnabled;
|
bool fStopImageNameListEnabled;
|
||||||
BStringList fStopImageNames;
|
BStringList fStopImageNames;
|
||||||
|
int32 fDefaultSignalDisposition;
|
||||||
|
SignalDispositionMappings
|
||||||
|
fCustomSignalDispositions;
|
||||||
BreakpointList fBreakpoints;
|
BreakpointList fBreakpoints;
|
||||||
WatchpointList fWatchpoints;
|
WatchpointList fWatchpoints;
|
||||||
UserBreakpointList fUserBreakpoints;
|
UserBreakpointList fUserBreakpoints;
|
||||||
@@ -330,6 +363,34 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
class Team::DefaultSignalDispositionEvent : public Event {
|
||||||
|
public:
|
||||||
|
DefaultSignalDispositionEvent(uint32 type,
|
||||||
|
Team* team, int32 disposition);
|
||||||
|
|
||||||
|
int32 DefaultDisposition() const
|
||||||
|
{ return fDefaultDisposition; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
int32 fDefaultDisposition;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
class Team::CustomSignalDispositionEvent : public Event {
|
||||||
|
public:
|
||||||
|
CustomSignalDispositionEvent(uint32 type,
|
||||||
|
Team* team, int32 signal,
|
||||||
|
int32 disposition);
|
||||||
|
|
||||||
|
int32 Signal() const { return fSignal; }
|
||||||
|
int32 Disposition() const { return fDisposition; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
int32 fSignal;
|
||||||
|
int32 fDisposition;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
class Team::BreakpointEvent : public Event {
|
class Team::BreakpointEvent : public Event {
|
||||||
public:
|
public:
|
||||||
BreakpointEvent(uint32 type, Team* team,
|
BreakpointEvent(uint32 type, Team* team,
|
||||||
@@ -433,6 +494,16 @@ public:
|
|||||||
virtual void StopOnImageLoadNameRemoved(
|
virtual void StopOnImageLoadNameRemoved(
|
||||||
const Team::ImageLoadNameEvent& event);
|
const Team::ImageLoadNameEvent& event);
|
||||||
|
|
||||||
|
virtual void DefaultSignalDispositionChanged(
|
||||||
|
const Team::DefaultSignalDispositionEvent&
|
||||||
|
event);
|
||||||
|
virtual void CustomSignalDispositionChanged(
|
||||||
|
const Team::CustomSignalDispositionEvent&
|
||||||
|
event);
|
||||||
|
virtual void CustomSignalDispositionRemoved(
|
||||||
|
const Team::CustomSignalDispositionEvent&
|
||||||
|
event);
|
||||||
|
|
||||||
virtual void ConsoleOutputReceived(
|
virtual void ConsoleOutputReceived(
|
||||||
const Team::ConsoleOutputEvent& event);
|
const Team::ConsoleOutputEvent& event);
|
||||||
|
|
||||||
|
|||||||
@@ -128,6 +128,13 @@ public:
|
|||||||
virtual void RemoveStopImageNameRequested(
|
virtual void RemoveStopImageNameRequested(
|
||||||
const char* name) = 0;
|
const char* name) = 0;
|
||||||
|
|
||||||
|
virtual void SetDefaultSignalDispositionRequested(
|
||||||
|
int32 disposition) = 0;
|
||||||
|
virtual void SetCustomSignalDispositionRequested(
|
||||||
|
int32 signal, int32 disposition) = 0;
|
||||||
|
virtual void RemoveCustomSignalDispositionRequested(
|
||||||
|
int32 signal) = 0;
|
||||||
|
|
||||||
virtual void SetWatchpointRequested(target_addr_t address,
|
virtual void SetWatchpointRequested(target_addr_t address,
|
||||||
uint32 type, int32 length,
|
uint32 type, int32 length,
|
||||||
bool enabled) = 0;
|
bool enabled) = 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user