enum Process::ExitReason
Overview
The reason why a process terminated.
This enum provides a platform-independent way to query any exceptions that
occurred upon a process's termination, via Process::Status#exit_reason
.
Defined in:
process/status.crEnum Members
-
Normal =
0
-
The process exited normally.
- On Unix-like systems, this implies
Process::Status#normal_exit?
is true. - On Windows, only exit statuses less than
0x40000000
are assumed to be reserved for normal exits.
- On Unix-like systems, this implies
-
Aborted =
1
-
The process terminated abnormally.
- On Unix-like systems, this corresponds to
Signal::ABRT
,Signal::HUP
,Signal::KILL
,Signal::QUIT
, andSignal::TERM
. - On Windows, this corresponds to the
NTSTATUS
valueSTATUS_FATAL_APP_EXIT
.
- On Unix-like systems, this corresponds to
-
Interrupted =
2
-
The process exited due to an interrupt request.
- On Unix-like systems, this corresponds to
Signal::INT
. - On Windows, this corresponds to the Ctrl + C and Ctrl + Break signals for console applications.
- On Unix-like systems, this corresponds to
-
Breakpoint =
3
-
The process reached a debugger breakpoint, but no debugger was attached.
- On Unix-like systems, this corresponds to
Signal::TRAP
. - On Windows, this corresponds to the
NTSTATUS
valueSTATUS_BREAKPOINT
.
- On Unix-like systems, this corresponds to
-
AccessViolation =
4
-
The process tried to access a memory address where a read or write was not allowed.
- On Unix-like systems, this corresponds to
Signal::SEGV
. - On Windows, this corresponds to the
NTSTATUS
valuesSTATUS_ACCESS_VIOLATION
andSTATUS_STACK_OVERFLOW
.
- On Unix-like systems, this corresponds to
-
BadMemoryAccess =
5
-
The process tried to access an invalid memory address.
- On Unix-like systems, this corresponds to
Signal::BUS
. - On Windows, this corresponds to the
NTSTATUS
valueSTATUS_DATATYPE_MISALIGNMENT
.
- On Unix-like systems, this corresponds to
-
BadInstruction =
6
-
The process tried to execute an invalid instruction.
- On Unix-like systems, this corresponds to
Signal::ILL
. - On Windows, this corresponds to the
NTSTATUS
valuesSTATUS_ILLEGAL_INSTRUCTION
andSTATUS_PRIVILEGED_INSTRUCTION
.
- On Unix-like systems, this corresponds to
-
FloatException =
7
-
A hardware floating-point exception occurred.
- On Unix-like systems, this corresponds to
Signal::FPE
. - On Windows, this corresponds to the
NTSTATUS
valuesSTATUS_FLOAT_DIVIDE_BY_ZERO
,STATUS_FLOAT_INEXACT_RESULT
,STATUS_FLOAT_INVALID_OPERATION
,STATUS_FLOAT_OVERFLOW
, andSTATUS_FLOAT_UNDERFLOW
.
- On Unix-like systems, this corresponds to
-
Signal =
8
-
The process exited due to a POSIX signal.
Only applies to signals without a more specific exit reason. Unused on Windows.
-
Unknown =
9
-
The process exited in a way that cannot be represented by any other
ExitReason
s.A
Process::Status
that maps toUnknown
may map to a different value if new enum members are added toExitReason
.
Instance Method Summary
- #aborted?
- #access_violation?
- #bad_instruction?
- #bad_memory_access?
- #breakpoint?
- #float_exception?
- #interrupted?
- #normal?
- #signal?
- #unknown?
Instance methods inherited from struct Enum
&(other : self) : self
&,
+(other : Int) : self
+,
-(other : Int) : self
-,
<=>(other : self)
<=>,
==(other : self)==(other) ==, ^(other : self) : self ^, |(other : self) : self |, ~ : self ~, clone clone, each(& : self -> ) each, hash(hasher) hash, includes?(other : self) : Bool includes?, inspect(io : IO) : Nil inspect, to_f32 : Float32 to_f32, to_f32! : Float32 to_f32!, to_f64 : Float64 to_f64, to_f64! : Float64 to_f64!, to_i : Int32 to_i, to_i128 : Int128 to_i128, to_i128! : Int128 to_i128!, to_i16 : Int16 to_i16, to_i16! : Int16 to_i16!, to_i32 : Int32 to_i32, to_i32! : Int32 to_i32!, to_i64 : Int64 to_i64, to_i64! : Int64 to_i64!, to_i8 : Int8 to_i8, to_i8! : Int8 to_i8!, to_json(json : JSON::Builder) to_json, to_s(io : IO) : Nil
to_s : String to_s, to_u128 : UInt128 to_u128, to_u128! : UInt128 to_u128!, to_u16 : UInt16 to_u16, to_u16! : UInt16 to_u16!, to_u32 : UInt32 to_u32, to_u32! : UInt32 to_u32!, to_u64 : UInt64 to_u64, to_u64! : UInt64 to_u64!, to_u8 : UInt8 to_u8, to_u8! : UInt8 to_u8!, to_yaml(yaml : YAML::Nodes::Builder) to_yaml, value : Int value
Constructor methods inherited from struct Enum
from_value(value : Int) : self
from_value,
new(ctx : YAML::ParseContext, node : YAML::Nodes::Node)new(value : self)
new(pull : JSON::PullParser) new, parse(string : String) : self parse
Class methods inherited from struct Enum
each(& : self -> )
each,
from_value?(value : Int) : self | Nil
from_value?,
names : Array(String)
names,
parse?(string : String) : self | Nil
parse?,
valid?(value : self) : Bool
valid?,
values : Array(self)
values
Instance methods inherited from module Comparable(Enum)
<(other : T) : Bool
<,
<=(other : T)
<=,
<=>(other : T)
<=>,
==(other : T)
==,
>(other : T) : Bool
>,
>=(other : T)
>=,
clamp(min, max)clamp(range : Range) clamp
Instance methods inherited from struct Value
==(other : JSON::Any)==(other : YAML::Any)
==(other) ==, dup dup
Instance methods inherited from class Object
! : Bool
!,
!=(other)
!=,
!~(other)
!~,
==(other)
==,
===(other : JSON::Any)===(other : YAML::Any)
===(other) ===, =~(other) =~, as(type : Class) as, as?(type : Class) as?, class class, dup dup, hash(hasher)
hash hash, in?(collection : Object) : Bool
in?(*values : Object) : Bool in?, inspect(io : IO) : Nil
inspect : String inspect, is_a?(type : Class) : Bool is_a?, itself itself, nil? : Bool nil?, not_nil!(message)
not_nil! not_nil!, pretty_inspect(width = 79, newline = "\n", indent = 0) : String pretty_inspect, pretty_print(pp : PrettyPrint) : Nil pretty_print, responds_to?(name : Symbol) : Bool responds_to?, tap(&) tap, to_json(io : IO) : Nil
to_json : String to_json, to_pretty_json(indent : String = " ") : String
to_pretty_json(io : IO, indent : String = " ") : Nil to_pretty_json, to_s(io : IO) : Nil
to_s : String to_s, to_yaml(io : IO) : Nil
to_yaml : String to_yaml, try(&) try, unsafe_as(type : T.class) forall T unsafe_as
Class methods inherited from class Object
from_json(string_or_io, root : String)from_json(string_or_io) from_json, from_yaml(string_or_io : String | IO) from_yaml