brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.5 KiB · 2d76b80 Raw
111 lines · cpp
1//===-- State.cpp ---------------------------------------------------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9#include "lldb/Utility/State.h"10 11using namespace lldb;12using namespace lldb_private;13 14const char *lldb_private::StateAsCString(StateType state) {15  switch (state) {16  case eStateInvalid:17    return "invalid";18  case eStateUnloaded:19    return "unloaded";20  case eStateConnected:21    return "connected";22  case eStateAttaching:23    return "attaching";24  case eStateLaunching:25    return "launching";26  case eStateStopped:27    return "stopped";28  case eStateRunning:29    return "running";30  case eStateStepping:31    return "stepping";32  case eStateCrashed:33    return "crashed";34  case eStateDetached:35    return "detached";36  case eStateExited:37    return "exited";38  case eStateSuspended:39    return "suspended";40  }41  return "unknown";42}43 44const char *lldb_private::GetPermissionsAsCString(uint32_t permissions) {45  switch (permissions) {46  case 0:47    return "---";48  case ePermissionsWritable:49    return "-w-";50  case ePermissionsReadable:51    return "r--";52  case ePermissionsExecutable:53    return "--x";54  case ePermissionsReadable | ePermissionsWritable:55    return "rw-";56  case ePermissionsReadable | ePermissionsExecutable:57    return "r-x";58  case ePermissionsWritable | ePermissionsExecutable:59    return "-wx";60  case ePermissionsReadable | ePermissionsWritable | ePermissionsExecutable:61    return "rwx";62  default:63    break;64  }65  return "???";66}67 68bool lldb_private::StateIsRunningState(StateType state) {69  switch (state) {70  case eStateAttaching:71  case eStateLaunching:72  case eStateRunning:73  case eStateStepping:74    return true;75 76  case eStateConnected:77  case eStateDetached:78  case eStateInvalid:79  case eStateUnloaded:80  case eStateStopped:81  case eStateCrashed:82  case eStateExited:83  case eStateSuspended:84    break;85  }86  return false;87}88 89bool lldb_private::StateIsStoppedState(StateType state, bool must_exist) {90  switch (state) {91  case eStateInvalid:92  case eStateConnected:93  case eStateAttaching:94  case eStateLaunching:95  case eStateRunning:96  case eStateStepping:97  case eStateDetached:98    break;99 100  case eStateUnloaded:101  case eStateExited:102    return !must_exist;103 104  case eStateStopped:105  case eStateCrashed:106  case eStateSuspended:107    return true;108  }109  return false;110}111