forked from OSchip/llvm-project
118 lines
3.0 KiB
C++
118 lines
3.0 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:
|
|
default:
|
|
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:
|
|
default:
|
|
break;
|
|
|
|
case eStateUnloaded:
|
|
case eStateExited:
|
|
return !must_exist;
|
|
|
|
case eStateStopped:
|
|
case eStateCrashed:
|
|
case eStateSuspended:
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|