1 //===-- SBDefines.h ---------------------------------------------*- C++ -*-===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 9 #ifndef LLDB_API_SBDEFINES_H 10 #define LLDB_API_SBDEFINES_H 11 12 #include "lldb/lldb-defines.h" 13 #include "lldb/lldb-enumerations.h" 14 #include "lldb/lldb-forward.h" 15 #include "lldb/lldb-types.h" 16 #include "lldb/lldb-versioning.h" 17 18 #include <cstdio> // For FILE * 19 20 #ifndef LLDB_API 21 #if defined(_WIN32) 22 #if defined(LLDB_IN_LIBLLDB) 23 #define LLDB_API __declspec(dllexport) 24 #else 25 #define LLDB_API __declspec(dllimport) 26 #endif 27 #else // defined (_WIN32) 28 #define LLDB_API 29 #endif 30 #endif 31 32 // Don't add the deprecated attribute when generating the bindings or when 33 // building for anything older than C++14 which is the first version that 34 // supports the attribute. 35 #if defined(SWIG) || _cplusplus < 201402L 36 #undef LLDB_DEPRECATED 37 #undef LLDB_DEPRECATED_FIXME 38 #define LLDB_DEPRECATED(MSG) 39 #define LLDB_DEPRECATED_FIXME(MSG, FIX) 40 #endif 41 42 // Forward Declarations 43 namespace lldb { 44 45 class LLDB_API SBAddress; 46 class LLDB_API SBAttachInfo; 47 class LLDB_API SBBlock; 48 class LLDB_API SBBreakpoint; 49 class LLDB_API SBBreakpointList; 50 class LLDB_API SBBreakpointLocation; 51 class LLDB_API SBBreakpointName; 52 class LLDB_API SBBreakpointNameImpl; 53 class LLDB_API SBBroadcaster; 54 class LLDB_API SBCommand; 55 class LLDB_API SBCommandInterpreter; 56 class LLDB_API SBCommandInterpreterRunOptions; 57 class LLDB_API SBCommandInterpreterRunResult; 58 class LLDB_API SBCommandPluginInterface; 59 class LLDB_API SBCommandReturnObject; 60 class LLDB_API SBCommunication; 61 class LLDB_API SBCompileUnit; 62 class LLDB_API SBData; 63 class LLDB_API SBDebugger; 64 class LLDB_API SBDeclaration; 65 class LLDB_API SBEnvironment; 66 class LLDB_API SBError; 67 class LLDB_API SBEvent; 68 class LLDB_API SBEventList; 69 class LLDB_API SBExecutionContext; 70 class LLDB_API SBExpressionOptions; 71 class LLDB_API SBFile; 72 class LLDB_API SBFileSpec; 73 class LLDB_API SBFileSpecList; 74 class LLDB_API SBFormat; 75 class LLDB_API SBFrame; 76 class LLDB_API SBFunction; 77 class LLDB_API SBHostOS; 78 class LLDB_API SBInstruction; 79 class LLDB_API SBInstructionList; 80 class LLDB_API SBLanguageRuntime; 81 class LLDB_API SBLaunchInfo; 82 class LLDB_API SBLineEntry; 83 class LLDB_API SBListener; 84 class LLDB_API SBMemoryRegionInfo; 85 class LLDB_API SBMemoryRegionInfoList; 86 class LLDB_API SBModule; 87 class LLDB_API SBModuleSpec; 88 class LLDB_API SBModuleSpecList; 89 class LLDB_API SBPlatform; 90 class LLDB_API SBPlatformConnectOptions; 91 class LLDB_API SBPlatformShellCommand; 92 class LLDB_API SBProcess; 93 class LLDB_API SBProcessInfo; 94 class LLDB_API SBProcessInfoList; 95 class LLDB_API SBQueue; 96 class LLDB_API SBQueueItem; 97 class LLDB_API SBReplayOptions; 98 class LLDB_API SBReproducer; 99 class LLDB_API SBScriptObject; 100 class LLDB_API SBSection; 101 class LLDB_API SBSourceManager; 102 class LLDB_API SBStatisticsOptions; 103 class LLDB_API SBStream; 104 class LLDB_API SBStringList; 105 class LLDB_API SBStructuredData; 106 class LLDB_API SBSymbol; 107 class LLDB_API SBSymbolContext; 108 class LLDB_API SBSymbolContextList; 109 class LLDB_API SBTarget; 110 class LLDB_API SBThread; 111 class LLDB_API SBThreadCollection; 112 class LLDB_API SBThreadPlan; 113 class LLDB_API SBTrace; 114 class LLDB_API SBTraceCursor; 115 class LLDB_API SBType; 116 class LLDB_API SBTypeCategory; 117 class LLDB_API SBTypeEnumMember; 118 class LLDB_API SBTypeEnumMemberList; 119 class LLDB_API SBTypeFilter; 120 class LLDB_API SBTypeFormat; 121 class LLDB_API SBTypeMember; 122 class LLDB_API SBTypeMemberFunction; 123 class LLDB_API SBTypeNameSpecifier; 124 class LLDB_API SBTypeSummary; 125 class LLDB_API SBTypeSummaryOptions; 126 class LLDB_API SBTypeSynthetic; 127 class LLDB_API SBTypeList; 128 class LLDB_API SBValue; 129 class LLDB_API SBValueList; 130 class LLDB_API SBVariablesOptions; 131 class LLDB_API SBWatchpoint; 132 class LLDB_API SBWatchpointOptions; 133 class LLDB_API SBUnixSignals; 134 135 typedef bool (*SBBreakpointHitCallback)(void *baton, SBProcess &process, 136 SBThread &thread, 137 lldb::SBBreakpointLocation &location); 138 139 typedef void (*SBDebuggerDestroyCallback)(lldb::user_id_t debugger_id, 140 void *baton); 141 142 typedef SBError (*SBPlatformLocateModuleCallback)( 143 void *baton, const SBModuleSpec &module_spec, SBFileSpec &module_file_spec, 144 SBFileSpec &symbol_file_spec); 145 } 146 147 #endif // LLDB_API_SBDEFINES_H 148