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 SBAddressRange; 47 class LLDB_API SBAddressRangeList; 48 class LLDB_API SBAttachInfo; 49 class LLDB_API SBBlock; 50 class LLDB_API SBBreakpoint; 51 class LLDB_API SBBreakpointList; 52 class LLDB_API SBBreakpointLocation; 53 class LLDB_API SBBreakpointName; 54 class LLDB_API SBBreakpointNameImpl; 55 class LLDB_API SBBroadcaster; 56 class LLDB_API SBCommand; 57 class LLDB_API SBCommandInterpreter; 58 class LLDB_API SBCommandInterpreterRunOptions; 59 class LLDB_API SBCommandInterpreterRunResult; 60 class LLDB_API SBCommandPluginInterface; 61 class LLDB_API SBCommandReturnObject; 62 class LLDB_API SBCommunication; 63 class LLDB_API SBCompileUnit; 64 class LLDB_API SBSaveCoreOptions; 65 class LLDB_API SBData; 66 class LLDB_API SBDebugger; 67 class LLDB_API SBDeclaration; 68 class LLDB_API SBEnvironment; 69 class LLDB_API SBError; 70 class LLDB_API SBEvent; 71 class LLDB_API SBEventList; 72 class LLDB_API SBExecutionContext; 73 class LLDB_API SBExpressionOptions; 74 class LLDB_API SBFile; 75 class LLDB_API SBFileSpec; 76 class LLDB_API SBFileSpecList; 77 class LLDB_API SBFormat; 78 class LLDB_API SBFrame; 79 class LLDB_API SBFunction; 80 class LLDB_API SBHostOS; 81 class LLDB_API SBInstruction; 82 class LLDB_API SBInstructionList; 83 class LLDB_API SBLanguageRuntime; 84 class LLDB_API SBLaunchInfo; 85 class LLDB_API SBLineEntry; 86 class LLDB_API SBListener; 87 class LLDB_API SBMemoryRegionInfo; 88 class LLDB_API SBMemoryRegionInfoList; 89 class LLDB_API SBModule; 90 class LLDB_API SBModuleSpec; 91 class LLDB_API SBModuleSpecList; 92 class LLDB_API SBPlatform; 93 class LLDB_API SBPlatformConnectOptions; 94 class LLDB_API SBPlatformShellCommand; 95 class LLDB_API SBProcess; 96 class LLDB_API SBProcessInfo; 97 class LLDB_API SBProcessInfoList; 98 class LLDB_API SBQueue; 99 class LLDB_API SBQueueItem; 100 class LLDB_API SBReplayOptions; 101 class LLDB_API SBReproducer; 102 class LLDB_API SBScriptObject; 103 class LLDB_API SBSection; 104 class LLDB_API SBSourceManager; 105 class LLDB_API SBStatisticsOptions; 106 class LLDB_API SBStream; 107 class LLDB_API SBStringList; 108 class LLDB_API SBStructuredData; 109 class LLDB_API SBSymbol; 110 class LLDB_API SBSymbolContext; 111 class LLDB_API SBSymbolContextList; 112 class LLDB_API SBTarget; 113 class LLDB_API SBThread; 114 class LLDB_API SBThreadCollection; 115 class LLDB_API SBThreadPlan; 116 class LLDB_API SBTrace; 117 class LLDB_API SBTraceCursor; 118 class LLDB_API SBType; 119 class LLDB_API SBTypeCategory; 120 class LLDB_API SBTypeEnumMember; 121 class LLDB_API SBTypeEnumMemberList; 122 class LLDB_API SBTypeFilter; 123 class LLDB_API SBTypeFormat; 124 class LLDB_API SBTypeMember; 125 class LLDB_API SBTypeMemberFunction; 126 class LLDB_API SBTypeNameSpecifier; 127 class LLDB_API SBTypeSummary; 128 class LLDB_API SBTypeSummaryOptions; 129 class LLDB_API SBTypeSynthetic; 130 class LLDB_API SBTypeList; 131 class LLDB_API SBValue; 132 class LLDB_API SBValueList; 133 class LLDB_API SBVariablesOptions; 134 class LLDB_API SBWatchpoint; 135 class LLDB_API SBWatchpointOptions; 136 class LLDB_API SBUnixSignals; 137 138 typedef bool (*SBBreakpointHitCallback)(void *baton, SBProcess &process, 139 SBThread &thread, 140 lldb::SBBreakpointLocation &location); 141 142 typedef void (*SBDebuggerDestroyCallback)(lldb::user_id_t debugger_id, 143 void *baton); 144 145 typedef SBError (*SBPlatformLocateModuleCallback)( 146 void *baton, const SBModuleSpec &module_spec, SBFileSpec &module_file_spec, 147 SBFileSpec &symbol_file_spec); 148 } 149 150 #endif // LLDB_API_SBDEFINES_H 151