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