1//===-- SBReproducer.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_SBREPRODUCER_H
10#define LLDB_API_SBREPRODUCER_H
11
12#include "lldb/API/SBDefines.h"
13
14namespace lldb_private {
15namespace repro {
16struct ReplayOptions;
17}
18} // namespace lldb_private
19
20namespace lldb {
21
22#ifndef SWIG
23class LLDB_API SBReplayOptions {
24public:
25 SBReplayOptions();
26 SBReplayOptions(const SBReplayOptions &rhs);
27 ~SBReplayOptions();
28
29 SBReplayOptions &operator=(const SBReplayOptions &rhs);
30
31 void SetVerify(bool verify);
32 bool GetVerify() const;
33
34 void SetCheckVersion(bool check);
35 bool GetCheckVersion() const;
36};
37#endif
38
39/// The SBReproducer class is special because it bootstraps the capture and
40/// replay of SB API calls. As a result we cannot rely on any other SB objects
41/// in the interface or implementation of this class.
42class LLDB_API SBReproducer {
43public:
44#ifndef SWIG
45 static const char *Capture();
46#endif
47 static const char *Capture(const char *path);
48#ifndef SWIG
49 static const char *Replay(const char *path);
50 static const char *Replay(const char *path, bool skip_version_check);
51 static const char *Replay(const char *path, const SBReplayOptions &options);
52#endif
53 static const char *PassiveReplay(const char *path);
54#ifndef SWIG
55 static const char *Finalize(const char *path);
56 static const char *GetPath();
57#endif
58 static bool SetAutoGenerate(bool b);
59#ifndef SWIG
60 static bool Generate();
61#endif
62
63 /// The working directory is set to the current working directory when the
64 /// reproducers are initialized. This method allows setting a different
65 /// working directory. This is used by the API test suite which temporarily
66 /// changes the directory to where the test lives. This is a NO-OP in every
67 /// mode but capture.
68 static void SetWorkingDirectory(const char *path);
69};
70
71} // namespace lldb
72
73#endif
74

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