diff --git a/src/apps/debugger/types/SignalDispositionTypes.h b/src/apps/debugger/types/SignalDispositionTypes.h new file mode 100644 index 0000000000..4dae404eec --- /dev/null +++ b/src/apps/debugger/types/SignalDispositionTypes.h @@ -0,0 +1,20 @@ +/* + * Copyright 2015, Rene Gollent, rene@gollent.com. + * Distributed under the terms of the MIT License. + */ +#ifndef SIGNAL_DISPOSITION_TYPES_H +#define SIGNAL_DISPOSITION_TYPES_H + + +enum SignalDisposition { + SIGNAL_DISPOSITION_IGNORE = 0, + SIGNAL_DISPOSITION_STOP_AT_RECEIPT, + SIGNAL_DISPOSITION_STOP_AT_SIGNAL_HANDLER, + // NB: if the team has no signal handler installed for + // the corresponding signal, this implies stop at receipt. + + SIGNAL_DISPOSITION_MAX +}; + + +#endif // SIGNAL_DISPOSITION_TYPES_H diff --git a/src/apps/debugger/user_interface/util/UiUtils.cpp b/src/apps/debugger/user_interface/util/UiUtils.cpp index c2de82f67e..d952a95ad7 100644 --- a/src/apps/debugger/user_interface/util/UiUtils.cpp +++ b/src/apps/debugger/user_interface/util/UiUtils.cpp @@ -21,6 +21,7 @@ #include "FunctionInstance.h" #include "Image.h" #include "RangeList.h" +#include "SignalDispositionTypes.h" #include "StackFrame.h" #include "Team.h" #include "TeamMemoryBlock.h" @@ -559,3 +560,21 @@ UiUtils::FormatSIMDValue(const BVariant& value, uint32 bitSize, return _output; } + + +const char* +UiUtils::SignalDispositionToString(int disposition) +{ + switch (disposition) { + case SIGNAL_DISPOSITION_IGNORE: + return "Ignore"; + case SIGNAL_DISPOSITION_STOP_AT_RECEIPT: + return "Stop at receipt"; + case SIGNAL_DISPOSITION_STOP_AT_SIGNAL_HANDLER: + return "Stop at signal handler"; + default: + break; + } + + return "Unknown"; +} diff --git a/src/apps/debugger/user_interface/util/UiUtils.h b/src/apps/debugger/user_interface/util/UiUtils.h index 8f5af96ed1..6290049d42 100644 --- a/src/apps/debugger/user_interface/util/UiUtils.h +++ b/src/apps/debugger/user_interface/util/UiUtils.h @@ -74,6 +74,8 @@ public: static const BString& FormatSIMDValue(const BVariant& value, uint32 bitSize, uint32 format, BString& _output); + + static const char* SignalDispositionToString(int disposition); };