forked from OSchip/llvm-project
120 lines
2.7 KiB
C++
120 lines
2.7 KiB
C++
//===-- State.cpp -----------------------------------------------*- C++ -*-===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
// C Includes
|
|
// C++ Includes
|
|
// Other libraries and framework includes
|
|
// Project includes
|
|
#include "lldb/Core/State.h"
|
|
#include <stdio.h>
|
|
|
|
using namespace lldb;
|
|
using namespace lldb_private;
|
|
|
|
const char *lldb_private::StateAsCString(StateType state) {
|
|
switch (state) {
|
|
case eStateInvalid:
|
|
return "invalid";
|
|
case eStateUnloaded:
|
|
return "unloaded";
|
|
case eStateConnected:
|
|
return "connected";
|
|
case eStateAttaching:
|
|
return "attaching";
|
|
case eStateLaunching:
|
|
return "launching";
|
|
case eStateStopped:
|
|
return "stopped";
|
|
case eStateRunning:
|
|
return "running";
|
|
case eStateStepping:
|
|
return "stepping";
|
|
case eStateCrashed:
|
|
return "crashed";
|
|
case eStateDetached:
|
|
return "detached";
|
|
case eStateExited:
|
|
return "exited";
|
|
case eStateSuspended:
|
|
return "suspended";
|
|
}
|
|
static char unknown_state_string[64];
|
|
snprintf(unknown_state_string, sizeof(unknown_state_string), "StateType = %i",
|
|
state);
|
|
return unknown_state_string;
|
|
}
|
|
|
|
const char *lldb_private::GetPermissionsAsCString(uint32_t permissions) {
|
|
switch (permissions) {
|
|
case 0:
|
|
return "---";
|
|
case ePermissionsWritable:
|
|
return "-w-";
|
|
case ePermissionsReadable:
|
|
return "r--";
|
|
case ePermissionsExecutable:
|
|
return "--x";
|
|
case ePermissionsReadable | ePermissionsWritable:
|
|
return "rw-";
|
|
case ePermissionsReadable | ePermissionsExecutable:
|
|
return "r-x";
|
|
case ePermissionsWritable | ePermissionsExecutable:
|
|
return "-wx";
|
|
case ePermissionsReadable | ePermissionsWritable | ePermissionsExecutable:
|
|
return "rwx";
|
|
default:
|
|
break;
|
|
}
|
|
return "???";
|
|
}
|
|
|
|
bool lldb_private::StateIsRunningState(StateType state) {
|
|
switch (state) {
|
|
case eStateAttaching:
|
|
case eStateLaunching:
|
|
case eStateRunning:
|
|
case eStateStepping:
|
|
return true;
|
|
|
|
case eStateConnected:
|
|
case eStateDetached:
|
|
case eStateInvalid:
|
|
case eStateUnloaded:
|
|
case eStateStopped:
|
|
case eStateCrashed:
|
|
case eStateExited:
|
|
case eStateSuspended:
|
|
break;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
bool lldb_private::StateIsStoppedState(StateType state, bool must_exist) {
|
|
switch (state) {
|
|
case eStateInvalid:
|
|
case eStateConnected:
|
|
case eStateAttaching:
|
|
case eStateLaunching:
|
|
case eStateRunning:
|
|
case eStateStepping:
|
|
case eStateDetached:
|
|
break;
|
|
|
|
case eStateUnloaded:
|
|
case eStateExited:
|
|
return !must_exist;
|
|
|
|
case eStateStopped:
|
|
case eStateCrashed:
|
|
case eStateSuspended:
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|