aboutsummaryrefslogtreecommitdiff
path: root/include/lldb/Interpreter/CommandReturnObject.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/lldb/Interpreter/CommandReturnObject.h')
-rw-r--r--include/lldb/Interpreter/CommandReturnObject.h286
1 files changed, 130 insertions, 156 deletions
diff --git a/include/lldb/Interpreter/CommandReturnObject.h b/include/lldb/Interpreter/CommandReturnObject.h
index e3a1d9f657cb..40db5635afa4 100644
--- a/include/lldb/Interpreter/CommandReturnObject.h
+++ b/include/lldb/Interpreter/CommandReturnObject.h
@@ -14,193 +14,167 @@
// C++ Includes
// Other libraries and framework includes
// Project includes
-#include "lldb/lldb-private.h"
#include "lldb/Core/STLUtils.h"
#include "lldb/Core/StreamFile.h"
#include "lldb/Core/StreamString.h"
#include "lldb/Core/StreamTee.h"
+#include "lldb/lldb-private.h"
+
+#include "llvm/ADT/StringRef.h"
+#include "llvm/Support/FormatVariadic.h"
+
+#include <memory>
namespace lldb_private {
-class CommandReturnObject
-{
+class CommandReturnObject {
public:
- CommandReturnObject ();
-
- ~CommandReturnObject ();
-
- const char *
- GetOutputData ()
- {
- lldb::StreamSP stream_sp (m_out_stream.GetStreamAtIndex (eStreamStringIndex));
- if (stream_sp)
- return static_cast<StreamString *>(stream_sp.get())->GetData();
- return "";
+ CommandReturnObject();
+
+ ~CommandReturnObject();
+
+ llvm::StringRef GetOutputData() {
+ lldb::StreamSP stream_sp(m_out_stream.GetStreamAtIndex(eStreamStringIndex));
+ if (stream_sp)
+ return static_pointer_cast<StreamString>(stream_sp)->GetString();
+ return llvm::StringRef();
+ }
+
+ llvm::StringRef GetErrorData() {
+ lldb::StreamSP stream_sp(m_err_stream.GetStreamAtIndex(eStreamStringIndex));
+ if (stream_sp)
+ return static_pointer_cast<StreamString>(stream_sp)->GetString();
+ return llvm::StringRef();
+ }
+
+ Stream &GetOutputStream() {
+ // Make sure we at least have our normal string stream output stream
+ lldb::StreamSP stream_sp(m_out_stream.GetStreamAtIndex(eStreamStringIndex));
+ if (!stream_sp) {
+ stream_sp.reset(new StreamString());
+ m_out_stream.SetStreamAtIndex(eStreamStringIndex, stream_sp);
}
-
- const char *
- GetErrorData ()
- {
- lldb::StreamSP stream_sp (m_err_stream.GetStreamAtIndex (eStreamStringIndex));
- if (stream_sp)
- return static_cast<StreamString *>(stream_sp.get())->GetData();
- else
- return "";
+ return m_out_stream;
+ }
+
+ Stream &GetErrorStream() {
+ // Make sure we at least have our normal string stream output stream
+ lldb::StreamSP stream_sp(m_err_stream.GetStreamAtIndex(eStreamStringIndex));
+ if (!stream_sp) {
+ stream_sp.reset(new StreamString());
+ m_err_stream.SetStreamAtIndex(eStreamStringIndex, stream_sp);
}
+ return m_err_stream;
+ }
- Stream &
- GetOutputStream ()
- {
- // Make sure we at least have our normal string stream output stream
- lldb::StreamSP stream_sp (m_out_stream.GetStreamAtIndex (eStreamStringIndex));
- if (!stream_sp)
- {
- stream_sp.reset (new StreamString());
- m_out_stream.SetStreamAtIndex (eStreamStringIndex, stream_sp);
- }
- return m_out_stream;
- }
+ void SetImmediateOutputFile(FILE *fh, bool transfer_fh_ownership = false) {
+ lldb::StreamSP stream_sp(new StreamFile(fh, transfer_fh_ownership));
+ m_out_stream.SetStreamAtIndex(eImmediateStreamIndex, stream_sp);
+ }
- Stream &
- GetErrorStream ()
- {
- // Make sure we at least have our normal string stream output stream
- lldb::StreamSP stream_sp (m_err_stream.GetStreamAtIndex (eStreamStringIndex));
- if (!stream_sp)
- {
- stream_sp.reset (new StreamString());
- m_err_stream.SetStreamAtIndex (eStreamStringIndex, stream_sp);
- }
- return m_err_stream;
- }
+ void SetImmediateErrorFile(FILE *fh, bool transfer_fh_ownership = false) {
+ lldb::StreamSP stream_sp(new StreamFile(fh, transfer_fh_ownership));
+ m_err_stream.SetStreamAtIndex(eImmediateStreamIndex, stream_sp);
+ }
- void
- SetImmediateOutputFile (FILE *fh, bool transfer_fh_ownership = false)
- {
- lldb::StreamSP stream_sp (new StreamFile (fh, transfer_fh_ownership));
- m_out_stream.SetStreamAtIndex (eImmediateStreamIndex, stream_sp);
- }
-
- void
- SetImmediateErrorFile (FILE *fh, bool transfer_fh_ownership = false)
- {
- lldb::StreamSP stream_sp (new StreamFile (fh, transfer_fh_ownership));
- m_err_stream.SetStreamAtIndex (eImmediateStreamIndex, stream_sp);
- }
-
- void
- SetImmediateOutputStream (const lldb::StreamSP &stream_sp)
- {
- m_out_stream.SetStreamAtIndex (eImmediateStreamIndex, stream_sp);
- }
-
- void
- SetImmediateErrorStream (const lldb::StreamSP &stream_sp)
- {
- m_err_stream.SetStreamAtIndex (eImmediateStreamIndex, stream_sp);
- }
-
- lldb::StreamSP
- GetImmediateOutputStream ()
- {
- return m_out_stream.GetStreamAtIndex (eImmediateStreamIndex);
- }
-
- lldb::StreamSP
- GetImmediateErrorStream ()
- {
- return m_err_stream.GetStreamAtIndex (eImmediateStreamIndex);
- }
-
- void
- Clear();
+ void SetImmediateOutputStream(const lldb::StreamSP &stream_sp) {
+ m_out_stream.SetStreamAtIndex(eImmediateStreamIndex, stream_sp);
+ }
- void
- AppendMessage (const char *in_string);
+ void SetImmediateErrorStream(const lldb::StreamSP &stream_sp) {
+ m_err_stream.SetStreamAtIndex(eImmediateStreamIndex, stream_sp);
+ }
- void
- AppendMessageWithFormat (const char *format, ...) __attribute__ ((format (printf, 2, 3)));
+ lldb::StreamSP GetImmediateOutputStream() {
+ return m_out_stream.GetStreamAtIndex(eImmediateStreamIndex);
+ }
- void
- AppendRawWarning (const char *in_string);
+ lldb::StreamSP GetImmediateErrorStream() {
+ return m_err_stream.GetStreamAtIndex(eImmediateStreamIndex);
+ }
- void
- AppendWarning (const char *in_string);
+ void Clear();
- void
- AppendWarningWithFormat (const char *format, ...) __attribute__ ((format (printf, 2, 3)));
+ void AppendMessage(llvm::StringRef in_string);
- void
- AppendError (const char *in_string);
+ void AppendMessageWithFormat(const char *format, ...)
+ __attribute__((format(printf, 2, 3)));
- void
- AppendRawError (const char *in_string);
+ void AppendRawWarning(llvm::StringRef in_string);
- void
- AppendErrorWithFormat (const char *format, ...) __attribute__ ((format (printf, 2, 3)));
+ void AppendWarning(llvm::StringRef in_string);
- void
- SetError(const Error &error,
- const char *fallback_error_cstr = nullptr);
-
- void
- SetError (const char *error_cstr);
+ void AppendWarningWithFormat(const char *format, ...)
+ __attribute__((format(printf, 2, 3)));
- lldb::ReturnStatus
- GetStatus();
+ void AppendError(llvm::StringRef in_string);
- void
- SetStatus (lldb::ReturnStatus status);
+ void AppendRawError(llvm::StringRef in_string);
- bool
- Succeeded ();
+ void AppendErrorWithFormat(const char *format, ...)
+ __attribute__((format(printf, 2, 3)));
- bool
- HasResult ();
+ template <typename... Args>
+ void AppendMessageWithFormatv(const char *format, Args &&... args) {
+ AppendMessage(llvm::formatv(format, std::forward<Args>(args)...).str());
+ }
- bool
- GetDidChangeProcessState ();
+ template <typename... Args>
+ void AppendWarningWithFormatv(const char *format, Args &&... args) {
+ AppendWarning(llvm::formatv(format, std::forward<Args>(args)...).str());
+ }
- void
- SetDidChangeProcessState (bool b);
+ template <typename... Args>
+ void AppendErrorWithFormatv(const char *format, Args &&... args) {
+ AppendError(llvm::formatv(format, std::forward<Args>(args)...).str());
+ }
- bool
- GetInteractive () const;
-
- void
- SetInteractive (bool b);
-
- bool
- GetAbnormalStopWasExpected() const
- {
- return m_abnormal_stop_was_expected;
- }
-
- void
- SetAbnormalStopWasExpected(bool signal_was_expected)
- {
- m_abnormal_stop_was_expected = signal_was_expected;
- }
+ void SetError(const Error &error, const char *fallback_error_cstr = nullptr);
+
+ void SetError(llvm::StringRef error_cstr);
+
+ lldb::ReturnStatus GetStatus();
+
+ void SetStatus(lldb::ReturnStatus status);
+
+ bool Succeeded();
+
+ bool HasResult();
+
+ bool GetDidChangeProcessState();
+
+ void SetDidChangeProcessState(bool b);
+
+ bool GetInteractive() const;
+
+ void SetInteractive(bool b);
+
+ bool GetAbnormalStopWasExpected() const {
+ return m_abnormal_stop_was_expected;
+ }
+
+ void SetAbnormalStopWasExpected(bool signal_was_expected) {
+ m_abnormal_stop_was_expected = signal_was_expected;
+ }
private:
- enum
- {
- eStreamStringIndex = 0,
- eImmediateStreamIndex = 1
- };
-
- StreamTee m_out_stream;
- StreamTee m_err_stream;
-
- lldb::ReturnStatus m_status;
- bool m_did_change_process_state;
- bool m_interactive; // If true, then the input handle from the debugger will be hooked up
- bool m_abnormal_stop_was_expected; // This is to support eHandleCommandFlagStopOnCrash vrs. attach.
- // The attach command often ends up with the process stopped due to a signal.
- // Normally that would mean stop on crash should halt batch execution, but we
- // obviously don't want that for attach. Using this flag, the attach command
- // (and anything else for which this is relevant) can say that the signal is
- // expected, and batch command execution can continue.
+ enum { eStreamStringIndex = 0, eImmediateStreamIndex = 1 };
+
+ StreamTee m_out_stream;
+ StreamTee m_err_stream;
+
+ lldb::ReturnStatus m_status;
+ bool m_did_change_process_state;
+ bool m_interactive; // If true, then the input handle from the debugger will
+ // be hooked up
+ bool m_abnormal_stop_was_expected; // This is to support
+ // eHandleCommandFlagStopOnCrash vrs.
+ // attach.
+ // The attach command often ends up with the process stopped due to a signal.
+ // Normally that would mean stop on crash should halt batch execution, but we
+ // obviously don't want that for attach. Using this flag, the attach command
+ // (and anything else for which this is relevant) can say that the signal is
+ // expected, and batch command execution can continue.
};
} // namespace lldb_private