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