lldb-enumerations.h revision b7b2532bf23c852ea3e43d10f2377338be5b464f
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//===-- lldb-enumerations.h -------------------------------------*- C++ -*-===// 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// The LLVM Compiler Infrastructure 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// This file is distributed under the University of Illinois Open Source 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// License. See LICENSE.TXT for details. 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//===----------------------------------------------------------------------===// 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef LLDB_lldb_enumerations_h_ 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define LLDB_lldb_enumerations_h_ 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace lldb { 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) //---------------------------------------------------------------------- 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Process and Thread States 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) //---------------------------------------------------------------------- 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) typedef enum StateType 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eStateInvalid = 0, 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eStateUnloaded, ///< Process is object is valid, but not currently loaded 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eStateConnected, ///< Process is connected to remote debug services, but not launched or attached to anything yet 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eStateAttaching, ///< Process is currently trying to attach 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eStateLaunching, ///< Process is in the process of launching 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eStateStopped, ///< Process or thread is stopped and can be examined. 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eStateRunning, ///< Process or thread is running and can't be examined. 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eStateStepping, ///< Process or thread is in the process of stepping and can not be examined. 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eStateCrashed, ///< Process or thread has crashed and can be examined. 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eStateDetached, ///< Process has been detached and can't be examined. 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eStateExited, ///< Process has exited and can't be examined. 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eStateSuspended ///< Process or thread is in a suspended state as far 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ///< as the debugger is concerned while other processes 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ///< or threads get the chance to run. 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } StateType; 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) //---------------------------------------------------------------------- 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Launch Flags 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) //---------------------------------------------------------------------- 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) typedef enum LaunchFlags 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eLaunchFlagNone = 0u, 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eLaunchFlagExec = (1u << 0), ///< Exec when launching and turn the calling process into a new process 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eLaunchFlagDebug = (1u << 1), ///< Stop as soon as the process launches to allow the process to be debugged 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eLaunchFlagStopAtEntry = (1u << 2), ///< Stop at the program entry point instead of auto-continuing when launching or attaching at entry point 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eLaunchFlagDisableASLR = (1u << 3), ///< Disable Address Space Layout Randomization 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eLaunchFlagDisableSTDIO = (1u << 4), ///< Disable stdio for inferior process (e.g. for a GUI app) 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eLaunchFlagLaunchInTTY = (1u << 5), ///< Launch the process in a new TTY if supported by the host 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eLaunchFlagLaunchInShell= (1u << 6), ///< Launch the process inside a shell to get shell expansion 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eLaunchFlagLaunchInSeparateProcessGroup = (1u << 7) ///< Launch the process in a separate process group 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } LaunchFlags; 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) //---------------------------------------------------------------------- 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Thread Run Modes 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) //---------------------------------------------------------------------- 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) typedef enum RunMode { 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eOnlyThisThread, 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eAllThreads, 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eOnlyDuringStepping 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } RunMode; 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) //---------------------------------------------------------------------- 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Byte ordering definitions 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) //---------------------------------------------------------------------- 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) typedef enum ByteOrder 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eByteOrderInvalid = 0, 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eByteOrderBig = 1, 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eByteOrderPDP = 2, 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eByteOrderLittle = 4 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } ByteOrder; 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) //---------------------------------------------------------------------- 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Register encoding definitions 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) //---------------------------------------------------------------------- 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) typedef enum Encoding 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eEncodingInvalid = 0, 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eEncodingUint, // unsigned integer 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eEncodingSint, // signed integer 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eEncodingIEEE754, // float 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eEncodingVector // vector registers 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } Encoding; 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) //---------------------------------------------------------------------- 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Display format definitions 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) //---------------------------------------------------------------------- 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) typedef enum Format 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eFormatDefault = 0, 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eFormatInvalid = 0, 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eFormatBoolean, 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eFormatBinary, 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eFormatBytes, 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eFormatBytesWithASCII, 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eFormatChar, 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eFormatCharPrintable, // Only printable characters, space if not printable 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eFormatComplex, // Floating point complex type 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eFormatComplexFloat = eFormatComplex, 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eFormatCString, // NULL terminated C strings 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eFormatDecimal, 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eFormatEnum, 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eFormatHex, 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eFormatFloat, 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eFormatOctal, 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eFormatOSType, // OS character codes encoded into an integer 'PICT' 'text' etc... 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eFormatUnicode16, 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eFormatUnicode32, 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eFormatUnsigned, 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eFormatPointer, 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eFormatVectorOfChar, 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eFormatVectorOfSInt8, 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eFormatVectorOfUInt8, 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eFormatVectorOfSInt16, 1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eFormatVectorOfUInt16, 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eFormatVectorOfSInt32, 1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eFormatVectorOfUInt32, 1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eFormatVectorOfSInt64, 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eFormatVectorOfUInt64, 1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eFormatVectorOfFloat32, 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eFormatVectorOfFloat64, 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eFormatVectorOfUInt128, 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eFormatComplexInteger, // Integer complex type 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eFormatCharArray, // Print characters with no single quotes, used for character arrays that can contain non printable characters 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eFormatAddressInfo, // Describe what an address points to (func + offset with file/line, symbol + offset, data, etc) 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eFormatHexFloat, // ISO C99 hex float string 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eFormatInstruction, // Disassemble an opcode 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) kNumFormats 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } Format; 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) //---------------------------------------------------------------------- 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Description levels for "void GetDescription(Stream *, DescriptionLevel)" calls 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) //---------------------------------------------------------------------- 1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) typedef enum DescriptionLevel 1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { 1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eDescriptionLevelBrief = 0, 1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eDescriptionLevelFull, 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eDescriptionLevelVerbose, 1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) kNumDescriptionLevels 1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } DescriptionLevel; 1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) //---------------------------------------------------------------------- 1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Script interpreter types 1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) //---------------------------------------------------------------------- 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) typedef enum ScriptLanguage 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { 1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eScriptLanguageNone, 1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eScriptLanguagePython, 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eScriptLanguageDefault = eScriptLanguagePython 1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } ScriptLanguage; 1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) //---------------------------------------------------------------------- 1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Register numbering types 1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) //---------------------------------------------------------------------- 1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) typedef enum RegisterKind 1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { 1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eRegisterKindGCC = 0, // the register numbers seen in eh_frame 1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eRegisterKindDWARF, // the register numbers seen DWARF 1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eRegisterKindGeneric, // insn ptr reg, stack ptr reg, etc not specific to any particular target 1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eRegisterKindGDB, // the register numbers gdb uses (matches stabs numbers?) 1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eRegisterKindLLDB, // lldb's internal register numbers 1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) kNumRegisterKinds 1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } RegisterKind; 1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) //---------------------------------------------------------------------- 1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Thread stop reasons 1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) //---------------------------------------------------------------------- 1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) typedef enum StopReason 1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { 1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eStopReasonInvalid = 0, 1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eStopReasonNone, 1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eStopReasonTrace, 1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eStopReasonBreakpoint, 1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eStopReasonWatchpoint, 1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eStopReasonSignal, 1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eStopReasonException, 1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eStopReasonPlanComplete 1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } StopReason; 1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) //---------------------------------------------------------------------- 1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Command Return Status Types 1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) //---------------------------------------------------------------------- 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) typedef enum ReturnStatus 1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { 1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eReturnStatusInvalid, 1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eReturnStatusSuccessFinishNoResult, 1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eReturnStatusSuccessFinishResult, 1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eReturnStatusSuccessContinuingNoResult, 1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eReturnStatusSuccessContinuingResult, 1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eReturnStatusStarted, 1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eReturnStatusFailed, 1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eReturnStatusQuit 1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } ReturnStatus; 1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) //---------------------------------------------------------------------- 1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Connection Status Types 1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) //---------------------------------------------------------------------- 1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) typedef enum ConnectionStatus 1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { 2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eConnectionStatusSuccess, // Success 2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eConnectionStatusEndOfFile, // End-of-file encountered 2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eConnectionStatusError, // Check GetError() for details 2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eConnectionStatusTimedOut, // Request timed out 2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eConnectionStatusNoConnection, // No connection 2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eConnectionStatusLostConnection // Lost connection while connected to a valid connection 2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } ConnectionStatus; 2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) typedef enum ErrorType 2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { 2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eErrorTypeInvalid, 2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eErrorTypeGeneric, ///< Generic errors that can be any value. 2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eErrorTypeMachKernel, ///< Mach kernel error codes. 2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eErrorTypePOSIX ///< POSIX error codes. 2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } ErrorType; 2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) typedef enum ValueType 2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { 2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eValueTypeInvalid = 0, 2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) eValueTypeVariableGlobal = 1, // globals variable 221 eValueTypeVariableStatic = 2, // static variable 222 eValueTypeVariableArgument = 3, // function argument variables 223 eValueTypeVariableLocal = 4, // function local variables 224 eValueTypeRegister = 5, // stack frame register value 225 eValueTypeRegisterSet = 6, // A collection of stack frame register values 226 eValueTypeConstResult = 7 // constant result variables 227 } ValueType; 228 229 //---------------------------------------------------------------------- 230 // Token size/granularities for Input Readers 231 //---------------------------------------------------------------------- 232 233 typedef enum InputReaderGranularity 234 { 235 eInputReaderGranularityInvalid = 0, 236 eInputReaderGranularityByte, 237 eInputReaderGranularityWord, 238 eInputReaderGranularityLine, 239 eInputReaderGranularityAll 240 } InputReaderGranularity; 241 242 //------------------------------------------------------------------ 243 /// These mask bits allow a common interface for queries that can 244 /// limit the amount of information that gets parsed to only the 245 /// information that is requested. These bits also can indicate what 246 /// actually did get resolved during query function calls. 247 /// 248 /// Each definition corresponds to a one of the member variables 249 /// in this class, and requests that that item be resolved, or 250 /// indicates that the member did get resolved. 251 //------------------------------------------------------------------ 252 typedef enum SymbolContextItem 253 { 254 eSymbolContextTarget = (1u << 0), ///< Set when \a target is requested from a query, or was located in query results 255 eSymbolContextModule = (1u << 1), ///< Set when \a module is requested from a query, or was located in query results 256 eSymbolContextCompUnit = (1u << 2), ///< Set when \a comp_unit is requested from a query, or was located in query results 257 eSymbolContextFunction = (1u << 3), ///< Set when \a function is requested from a query, or was located in query results 258 eSymbolContextBlock = (1u << 4), ///< Set when the deepest \a block is requested from a query, or was located in query results 259 eSymbolContextLineEntry = (1u << 5), ///< Set when \a line_entry is requested from a query, or was located in query results 260 eSymbolContextSymbol = (1u << 6), ///< Set when \a symbol is requested from a query, or was located in query results 261 eSymbolContextEverything = ((eSymbolContextSymbol << 1) - 1u) ///< Indicates to try and lookup everything up during a query. 262 } SymbolContextItem; 263 264 typedef enum Permissions 265 { 266 ePermissionsWritable = (1u << 0), 267 ePermissionsReadable = (1u << 1), 268 ePermissionsExecutable = (1u << 2) 269 } Permissions; 270 271 typedef enum InputReaderAction 272 { 273 eInputReaderActivate, // reader is newly pushed onto the reader stack 274 eInputReaderAsynchronousOutputWritten, // an async output event occurred; the reader may want to do something 275 eInputReaderReactivate, // reader is on top of the stack again after another reader was popped off 276 eInputReaderDeactivate, // another reader was pushed on the stack 277 eInputReaderGotToken, // reader got one of its tokens (granularity) 278 eInputReaderInterrupt, // reader received an interrupt signal (probably from a control-c) 279 eInputReaderEndOfFile, // reader received an EOF char (probably from a control-d) 280 eInputReaderDone // reader was just popped off the stack and is done 281 } InputReaderAction; 282 283 typedef enum BreakpointEventType 284 { 285 eBreakpointEventTypeInvalidType = (1u << 0), 286 eBreakpointEventTypeAdded = (1u << 1), 287 eBreakpointEventTypeRemoved = (1u << 2), 288 eBreakpointEventTypeLocationsAdded = (1u << 3), // Locations added doesn't get sent when the breakpoint is created 289 eBreakpointEventTypeLocationsRemoved = (1u << 4), 290 eBreakpointEventTypeLocationsResolved = (1u << 5), 291 eBreakpointEventTypeEnabled = (1u << 6), 292 eBreakpointEventTypeDisabled = (1u << 7), 293 eBreakpointEventTypeCommandChanged = (1u << 8), 294 eBreakpointEventTypeConditionChanged = (1u << 9), 295 eBreakpointEventTypeIgnoreChanged = (1u << 10), 296 eBreakpointEventTypeThreadChanged = (1u << 11) 297 } BreakpointEventType; 298 299 300 //---------------------------------------------------------------------- 301 /// Programming language type. 302 /// 303 /// These enumerations use the same language enumerations as the DWARF 304 /// specification for ease of use and consistency. 305 /// The enum -> string code is in LanguageRuntime.cpp, don't change this 306 /// table without updating that code as well. 307 //---------------------------------------------------------------------- 308 typedef enum LanguageType 309 { 310 eLanguageTypeUnknown = 0x0000, ///< Unknown or invalid language value. 311 eLanguageTypeC89 = 0x0001, ///< ISO C:1989. 312 eLanguageTypeC = 0x0002, ///< Non-standardized C, such as K&R. 313 eLanguageTypeAda83 = 0x0003, ///< ISO Ada:1983. 314 eLanguageTypeC_plus_plus = 0x0004, ///< ISO C++:1998. 315 eLanguageTypeCobol74 = 0x0005, ///< ISO Cobol:1974. 316 eLanguageTypeCobol85 = 0x0006, ///< ISO Cobol:1985. 317 eLanguageTypeFortran77 = 0x0007, ///< ISO Fortran 77. 318 eLanguageTypeFortran90 = 0x0008, ///< ISO Fortran 90. 319 eLanguageTypePascal83 = 0x0009, ///< ISO Pascal:1983. 320 eLanguageTypeModula2 = 0x000a, ///< ISO Modula-2:1996. 321 eLanguageTypeJava = 0x000b, ///< Java. 322 eLanguageTypeC99 = 0x000c, ///< ISO C:1999. 323 eLanguageTypeAda95 = 0x000d, ///< ISO Ada:1995. 324 eLanguageTypeFortran95 = 0x000e, ///< ISO Fortran 95. 325 eLanguageTypePLI = 0x000f, ///< ANSI PL/I:1976. 326 eLanguageTypeObjC = 0x0010, ///< Objective-C. 327 eLanguageTypeObjC_plus_plus = 0x0011, ///< Objective-C++. 328 eLanguageTypeUPC = 0x0012, ///< Unified Parallel C. 329 eLanguageTypeD = 0x0013, ///< D. 330 eLanguageTypePython = 0x0014 ///< Python. 331 } LanguageType; 332 333 typedef enum DynamicValueType 334 { 335 eNoDynamicValues = 0, 336 eDynamicCanRunTarget = 1, 337 eDynamicDontRunTarget = 2 338 } DynamicValueType; 339 340 typedef enum AccessType 341 { 342 eAccessNone, 343 eAccessPublic, 344 eAccessPrivate, 345 eAccessProtected, 346 eAccessPackage 347 } AccessType; 348 349 typedef enum CommandArgumentType 350 { 351 eArgTypeAddress = 0, 352 eArgTypeAliasName, 353 eArgTypeAliasOptions, 354 eArgTypeArchitecture, 355 eArgTypeBoolean, 356 eArgTypeBreakpointID, 357 eArgTypeBreakpointIDRange, 358 eArgTypeByteSize, 359 eArgTypeClassName, 360 eArgTypeCommandName, 361 eArgTypeCount, 362 eArgTypeEndAddress, 363 eArgTypeExpression, 364 eArgTypeExpressionPath, 365 eArgTypeExprFormat, 366 eArgTypeFilename, 367 eArgTypeFormat, 368 eArgTypeFrameIndex, 369 eArgTypeFullName, 370 eArgTypeFunctionName, 371 eArgTypeGDBFormat, 372 eArgTypeIndex, 373 eArgTypeLanguage, 374 eArgTypeLineNum, 375 eArgTypeLogCategory, 376 eArgTypeLogChannel, 377 eArgTypeMethod, 378 eArgTypeName, 379 eArgTypeNewPathPrefix, 380 eArgTypeNumLines, 381 eArgTypeNumberPerLine, 382 eArgTypeOffset, 383 eArgTypeOldPathPrefix, 384 eArgTypeOneLiner, 385 eArgTypePath, 386 eArgTypePid, 387 eArgTypePlugin, 388 eArgTypeProcessName, 389 eArgTypePythonClass, 390 eArgTypePythonFunction, 391 eArgTypePythonScript, 392 eArgTypeQueueName, 393 eArgTypeRegisterName, 394 eArgTypeRegularExpression, 395 eArgTypeRunArgs, 396 eArgTypeRunMode, 397 eArgTypeScriptedCommandSynchronicity, 398 eArgTypeScriptLang, 399 eArgTypeSearchWord, 400 eArgTypeSelector, 401 eArgTypeSettingIndex, 402 eArgTypeSettingKey, 403 eArgTypeSettingPrefix, 404 eArgTypeSettingVariableName, 405 eArgTypeShlibName, 406 eArgTypeSourceFile, 407 eArgTypeSortOrder, 408 eArgTypeStartAddress, 409 eArgTypeSummaryString, 410 eArgTypeSymbol, 411 eArgTypeThreadID, 412 eArgTypeThreadIndex, 413 eArgTypeThreadName, 414 eArgTypeUnsignedInteger, 415 eArgTypeUnixSignal, 416 eArgTypeVarName, 417 eArgTypeValue, 418 eArgTypeWidth, 419 eArgTypeNone, 420 eArgTypePlatform, 421 eArgTypeWatchpointID, 422 eArgTypeWatchpointIDRange, 423 eArgTypeWatchType, 424 eArgTypeLastArg // Always keep this entry as the last entry in this enumeration!! 425 } CommandArgumentType; 426 427 //---------------------------------------------------------------------- 428 // Symbol types 429 //---------------------------------------------------------------------- 430 typedef enum SymbolType 431 { 432 eSymbolTypeAny = 0, 433 eSymbolTypeInvalid = 0, 434 eSymbolTypeAbsolute, 435 eSymbolTypeCode, 436 eSymbolTypeData, 437 eSymbolTypeTrampoline, 438 eSymbolTypeRuntime, 439 eSymbolTypeException, 440 eSymbolTypeSourceFile, 441 eSymbolTypeHeaderFile, 442 eSymbolTypeObjectFile, 443 eSymbolTypeCommonBlock, 444 eSymbolTypeBlock, 445 eSymbolTypeLocal, 446 eSymbolTypeParam, 447 eSymbolTypeVariable, 448 eSymbolTypeVariableType, 449 eSymbolTypeLineEntry, 450 eSymbolTypeLineHeader, 451 eSymbolTypeScopeBegin, 452 eSymbolTypeScopeEnd, 453 eSymbolTypeAdditional, // When symbols take more than one entry, the extra entries get this type 454 eSymbolTypeCompiler, 455 eSymbolTypeInstrumentation, 456 eSymbolTypeUndefined, 457 eSymbolTypeObjCClass, 458 eSymbolTypeObjCMetaClass, 459 eSymbolTypeObjCIVar 460 } SymbolType; 461 462 typedef enum SectionType 463 { 464 eSectionTypeInvalid, 465 eSectionTypeCode, 466 eSectionTypeContainer, // The section contains child sections 467 eSectionTypeData, 468 eSectionTypeDataCString, // Inlined C string data 469 eSectionTypeDataCStringPointers, // Pointers to C string data 470 eSectionTypeDataSymbolAddress, // Address of a symbol in the symbol table 471 eSectionTypeData4, 472 eSectionTypeData8, 473 eSectionTypeData16, 474 eSectionTypeDataPointers, 475 eSectionTypeDebug, 476 eSectionTypeZeroFill, 477 eSectionTypeDataObjCMessageRefs, // Pointer to function pointer + selector 478 eSectionTypeDataObjCCFStrings, // Objective C const CFString/NSString objects 479 eSectionTypeDWARFDebugAbbrev, 480 eSectionTypeDWARFDebugAranges, 481 eSectionTypeDWARFDebugFrame, 482 eSectionTypeDWARFDebugInfo, 483 eSectionTypeDWARFDebugLine, 484 eSectionTypeDWARFDebugLoc, 485 eSectionTypeDWARFDebugMacInfo, 486 eSectionTypeDWARFDebugPubNames, 487 eSectionTypeDWARFDebugPubTypes, 488 eSectionTypeDWARFDebugRanges, 489 eSectionTypeDWARFDebugStr, 490 eSectionTypeDWARFAppleNames, 491 eSectionTypeDWARFAppleTypes, 492 eSectionTypeDWARFAppleNamespaces, 493 eSectionTypeDWARFAppleObjC, 494 eSectionTypeEHFrame, 495 eSectionTypeOther 496 497 } SectionType; 498 499 typedef enum EmulateInstructionOptions 500 { 501 eEmulateInstructionOptionNone = (0u), 502 eEmulateInstructionOptionAutoAdvancePC = (1u << 0), 503 eEmulateInstructionOptionIgnoreConditions = (1u << 1) 504 } EmulateInstructionOptions; 505 506 typedef enum FunctionNameType 507 { 508 eFunctionNameTypeNone = 0u, 509 eFunctionNameTypeAuto = (1u << 1), // Automatically figure out which FunctionNameType 510 // bits to set based on the function name. 511 eFunctionNameTypeFull = (1u << 2), // The function name. 512 // For C this is the same as just the name of the function 513 // For C++ this is the mangled or demangled version of the mangled name. 514 // For ObjC this is the full function signature with the + or 515 // - and the square brackets and the class and selector 516 eFunctionNameTypeBase = (1u << 3), // The function name only, no namespaces or arguments and no class 517 // methods or selectors will be searched. 518 eFunctionNameTypeMethod = (1u << 4), // Find function by method name (C++) with no namespace or arguments 519 eFunctionNameTypeSelector = (1u << 5), // Find function by selector name (ObjC) names 520 eFunctionNameTypeAny = (eFunctionNameTypeFull | 521 eFunctionNameTypeBase | 522 eFunctionNameTypeMethod | 523 eFunctionNameTypeSelector ) 524 } FunctionNameType; 525 526 527 //---------------------------------------------------------------------- 528 // Basic types enumeration for the public API SBType::GetBasicType() 529 //---------------------------------------------------------------------- 530 typedef enum BasicType 531 { 532 eBasicTypeInvalid = 0, 533 eBasicTypeVoid = 1, 534 eBasicTypeChar, 535 eBasicTypeSignedChar, 536 eBasicTypeWChar, 537 eBasicTypeChar16, 538 eBasicTypeChar32, 539 eBasicTypeShort, 540 eBasicTypeUnsignedShort, 541 eBasicTypeInt, 542 eBasicTypeUnsignedInt, 543 eBasicTypeLong, 544 eBasicTypeUnsignedLong, 545 eBasicTypeLongLong, 546 eBasicTypeUnsignedLongLong, 547 eBasicTypeInt128, 548 eBasicTypeUnsignedInt128, 549 eBasicTypeBool, 550 eBasicTypeFloat, 551 eBasicTypeDouble, 552 eBasicTypeLongDouble, 553 eBasicTypeFloatComplex, 554 eBasicTypeDoubleComplex, 555 eBasicTypeLongDoubleComplex, 556 eBasicTypeObjCID, 557 eBasicTypeObjCClass, 558 eBasicTypeObjCSel 559 } BasicType; 560 561 typedef enum TypeClass 562 { 563 eTypeClassInvalid = (0u), 564 eTypeClassArray = (1u << 0), 565 eTypeClassBlockPointer = (1u << 1), 566 eTypeClassBuiltin = (1u << 2), 567 eTypeClassClass = (1u << 3), 568 eTypeClassComplexFloat = (1u << 4), 569 eTypeClassComplexInteger = (1u << 5), 570 eTypeClassEnumeration = (1u << 6), 571 eTypeClassFunction = (1u << 7), 572 eTypeClassMemberPointer = (1u << 8), 573 eTypeClassObjCObject = (1u << 9), 574 eTypeClassObjCInterface = (1u << 10), 575 eTypeClassObjCObjectPointer = (1u << 11), 576 eTypeClassPointer = (1u << 12), 577 eTypeClassReference = (1u << 13), 578 eTypeClassStruct = (1u << 14), 579 eTypeClassTypedef = (1u << 15), 580 eTypeClassUnion = (1u << 16), 581 eTypeClassVector = (1u << 17), 582 // Define the last type class as the MSBit of a 32 bit value 583 eTypeClassOther = (1u << 31), 584 // Define a mask that can be used for any type when finding types 585 eTypeClassAny = (0xffffffffu) 586 }TypeClass; 587 588 typedef enum TemplateArgumentKind 589 { 590 eTemplateArgumentKindNull = 0, 591 eTemplateArgumentKindType, 592 eTemplateArgumentKindDeclaration, 593 eTemplateArgumentKindIntegral, 594 eTemplateArgumentKindTemplate, 595 eTemplateArgumentKindTemplateExpansion, 596 eTemplateArgumentKindExpression, 597 eTemplateArgumentKindPack 598 599 } TemplateArgumentKind; 600 601 //---------------------------------------------------------------------- 602 // Options that can be set for a formatter to alter its behavior 603 // Not all of these are applicable to all formatter types 604 //---------------------------------------------------------------------- 605 typedef enum TypeOptions 606 { 607 eTypeOptionNone = (0u), 608 eTypeOptionCascade = (1u << 0), 609 eTypeOptionSkipPointers = (1u << 1), 610 eTypeOptionSkipReferences = (1u << 2), 611 eTypeOptionHideChildren = (1u << 3), 612 eTypeOptionHideValue = (1u << 4), 613 eTypeOptionShowOneLiner = (1u << 5), 614 eTypeOptionHideNames = (1u << 6) 615 } TypeOptions; 616 617 //---------------------------------------------------------------------- 618 // This is the return value for frame comparisons. When frame A pushes 619 // frame B onto the stack, frame A is OLDER than frame B. 620 //---------------------------------------------------------------------- 621 typedef enum FrameComparison 622 { 623 eFrameCompareInvalid, 624 eFrameCompareUnknown, 625 eFrameCompareEqual, 626 eFrameCompareYounger, 627 eFrameCompareOlder 628 } FrameComparison; 629 630 //---------------------------------------------------------------------- 631 // Address Class 632 // 633 // A way of classifying an address used for disassembling and setting 634 // breakpoints. Many object files can track exactly what parts of their 635 // object files are code, data and other information. This is of course 636 // above and beyond just looking at the section types. For example, code 637 // might contain PC relative data and the object file might be able to 638 // tell us that an address in code is data. 639 //---------------------------------------------------------------------- 640 typedef enum AddressClass 641 { 642 eAddressClassInvalid, 643 eAddressClassUnknown, 644 eAddressClassCode, 645 eAddressClassCodeAlternateISA, 646 eAddressClassData, 647 eAddressClassDebug, 648 eAddressClassRuntime 649 } AddressClass; 650 651} // namespace lldb 652 653 654#endif // LLDB_lldb_enumerations_h_ 655