@ -342,7 +342,13 @@ ResultCode ProcessCapabilities::HandleHandleTableFlags(u32 flags) {
}
ResultCode ProcessCapabilities::HandleDebugFlags(u32 flags) {
// TODO: Implement
const u32 reserved = flags >> 19;
if (reserved != 0) {
return ERR_RESERVED_VALUE;
is_debuggable = (flags & 0x20000) != 0;
can_force_debug = (flags & 0x40000) != 0;
return RESULT_SUCCESS;
@ -165,6 +165,17 @@ public:
return kernel_version;
/// Whether or not this process can be debugged.
bool IsDebuggable() const {
return is_debuggable;
/// Whether or not this process can forcibly debug another
/// process, even if that process is not considered debuggable.
bool CanForceDebug() const {
return can_force_debug;
private:
/// Attempts to parse a given sequence of capability descriptors.
///