//===-- 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; }