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

source code of lldb/include/lldb/API/SBDefines.h