| 951 | |
| 952 | |
| 953 | static DebugStopReason GetStopReasonFromLinuxSignal(uint64_t signal) |
| 954 | { |
| 955 | static std::unordered_map<std::uint64_t, DebugStopReason> signal_lookup = { |
| 956 | {1, DebugStopReason::SignalHup}, |
| 957 | {2, DebugStopReason::SignalInt}, |
| 958 | {3, DebugStopReason::SignalQuit}, |
| 959 | {4, DebugStopReason::IllegalInstruction}, |
| 960 | {5, DebugStopReason::SingleStep}, |
| 961 | {6, DebugStopReason::SignalAbrt}, |
| 962 | {7, DebugStopReason::SignalEmt}, |
| 963 | {8, DebugStopReason::SignalFpe}, |
| 964 | {9, DebugStopReason::SignalKill}, |
| 965 | {10, DebugStopReason::SignalBus}, |
| 966 | {11, DebugStopReason::SignalSegv}, |
| 967 | {12, DebugStopReason::SignalSys}, |
| 968 | {13, DebugStopReason::SignalPipe}, |
| 969 | {14, DebugStopReason::SignalAlrm}, |
| 970 | {15, DebugStopReason::SignalTerm}, |
| 971 | {16, DebugStopReason::SignalUrg}, |
| 972 | {17, DebugStopReason::SignalStop}, |
| 973 | {18, DebugStopReason::SignalTstp}, |
| 974 | {19, DebugStopReason::SignalCont}, |
| 975 | {20, DebugStopReason::SignalChld}, |
| 976 | {21, DebugStopReason::SignalTtin}, |
| 977 | {22, DebugStopReason::SignalTtou}, |
| 978 | {23, DebugStopReason::SignalIo}, |
| 979 | {24, DebugStopReason::SignalXcpu}, |
| 980 | {25, DebugStopReason::SignalXfsz}, |
| 981 | {26, DebugStopReason::SignalVtalrm}, |
| 982 | {27, DebugStopReason::SignalProf}, |
| 983 | {28, DebugStopReason::SignalWinch}, |
| 984 | {29, DebugStopReason::SignalInfo}, |
| 985 | {30, DebugStopReason::SignalUsr1}, |
| 986 | {31, DebugStopReason::SignalUsr2}, |
| 987 | }; |
| 988 | |
| 989 | if (signal_lookup.find(signal) != signal_lookup.end()) |
| 990 | { |
| 991 | return signal_lookup[signal]; |
| 992 | } |
| 993 | |
| 994 | return DebugStopReason::UnknownReason; |
| 995 | } |
| 996 | |
| 997 | |
| 998 | DebugStopReason LldbAdapter::StopReason() |