|  | //===-- State.cpp -----------------------------------------------*- C++ -*-===// | 
|  | // | 
|  | // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. | 
|  | // See https://llvm.org/LICENSE.txt for license information. | 
|  | // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | 
|  | // | 
|  | //===----------------------------------------------------------------------===// | 
|  |  | 
|  | #include "lldb/Utility/State.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"; | 
|  | } | 
|  | return "unknown"; | 
|  | } | 
|  |  | 
|  | 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; | 
|  | } |