blob: 7d9ccda532a2eeda68fdef290a021c800ea4be66 [file] [log] [blame]
Chris Lattner24943d22010-06-08 16:52:24 +00001//===-- State.cpp -----------------------------------------------*- C++ -*-===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10// C Includes
11// C++ Includes
12// Other libraries and framework includes
13// Project includes
14#include "lldb/Core/State.h"
Eli Friedmana4083262010-06-09 08:50:27 +000015#include <stdio.h>
Chris Lattner24943d22010-06-08 16:52:24 +000016
17using namespace lldb;
18using namespace lldb_private;
19
20const char *
21lldb_private::StateAsCString (StateType state)
22{
23 switch (state)
24 {
Greg Claytonc1d37752010-10-18 01:45:30 +000025 case eStateInvalid: return "invalid";
26 case eStateUnloaded: return "unloaded";
Greg Claytone71e2582011-02-04 01:58:07 +000027 case eStateConnected: return "connected";
Greg Claytonc1d37752010-10-18 01:45:30 +000028 case eStateAttaching: return "attaching";
29 case eStateLaunching: return "launching";
30 case eStateStopped: return "stopped";
31 case eStateRunning: return "running";
32 case eStateStepping: return "stepping";
33 case eStateCrashed: return "crashed";
34 case eStateDetached: return "detached";
35 case eStateExited: return "exited";
36 case eStateSuspended: return "suspended";
Chris Lattner24943d22010-06-08 16:52:24 +000037 }
38 static char unknown_state_string[64];
39 snprintf(unknown_state_string, sizeof (unknown_state_string), "StateType = %i", state);
40 return unknown_state_string;
41}
42
Greg Clayton57b3c6b2011-04-27 22:04:39 +000043const char *
Greg Clayton613b8732011-05-17 03:37:42 +000044lldb_private::GetPermissionsAsCString (uint32_t permissions)
45{
46 switch (permissions)
47 {
48 case 0: return "---";
49 case ePermissionsWritable: return "-w-";
50 case ePermissionsReadable: return "r--";
51 case ePermissionsExecutable: return "--x";
52 case ePermissionsReadable |
53 ePermissionsWritable: return "rw-";
54 case ePermissionsReadable |
55 ePermissionsExecutable: return "r-x";
56 case ePermissionsWritable |
57 ePermissionsExecutable: return "-wx";
58 case ePermissionsReadable |
59 ePermissionsWritable |
60 ePermissionsExecutable: return "rwx";
61 default:
62 break;
63 }
64 return "???";
65}
66
Chris Lattner24943d22010-06-08 16:52:24 +000067bool
68lldb_private::StateIsRunningState (StateType state)
69{
70 switch (state)
71 {
72 case eStateAttaching:
73 case eStateLaunching:
74 case eStateRunning:
75 case eStateStepping:
76 return true;
77
Greg Claytone71e2582011-02-04 01:58:07 +000078 case eStateConnected:
Chris Lattner24943d22010-06-08 16:52:24 +000079 case eStateDetached:
80 case eStateInvalid:
81 case eStateUnloaded:
82 case eStateStopped:
83 case eStateCrashed:
84 case eStateExited:
85 case eStateSuspended:
Chris Lattner24943d22010-06-08 16:52:24 +000086 break;
87 }
88 return false;
89}
90
91bool
Greg Clayton20206082011-11-17 01:23:07 +000092lldb_private::StateIsStoppedState (StateType state, bool must_exist)
Chris Lattner24943d22010-06-08 16:52:24 +000093{
94 switch (state)
95 {
96 case eStateInvalid:
Greg Claytone71e2582011-02-04 01:58:07 +000097 case eStateConnected:
Chris Lattner24943d22010-06-08 16:52:24 +000098 case eStateAttaching:
99 case eStateLaunching:
100 case eStateRunning:
101 case eStateStepping:
102 case eStateDetached:
Chris Lattner24943d22010-06-08 16:52:24 +0000103 break;
104
105 case eStateUnloaded:
Greg Clayton20206082011-11-17 01:23:07 +0000106 case eStateExited:
107 return !must_exist;
108
Chris Lattner24943d22010-06-08 16:52:24 +0000109 case eStateStopped:
110 case eStateCrashed:
Chris Lattner24943d22010-06-08 16:52:24 +0000111 case eStateSuspended:
112 return true;
113 }
114 return false;
115}