aboutsummaryrefslogtreecommitdiff
path: root/lldb/include/lldb/API/SBDebugger.h
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/include/lldb/API/SBDebugger.h')
-rw-r--r--lldb/include/lldb/API/SBDebugger.h40
1 files changed, 39 insertions, 1 deletions
diff --git a/lldb/include/lldb/API/SBDebugger.h b/lldb/include/lldb/API/SBDebugger.h
index b3bfa230139c..ef62141f579d 100644
--- a/lldb/include/lldb/API/SBDebugger.h
+++ b/lldb/include/lldb/API/SBDebugger.h
@@ -9,7 +9,7 @@
#ifndef LLDB_API_SBDEBUGGER_H
#define LLDB_API_SBDEBUGGER_H
-#include <stdio.h>
+#include <cstdio>
#include "lldb/API/SBDefines.h"
#include "lldb/API/SBPlatform.h"
@@ -33,6 +33,8 @@ public:
class LLDB_API SBDebugger {
public:
+ FLAGS_ANONYMOUS_ENUM(){eBroadcastBitProgress = (1 << 0)};
+
SBDebugger();
SBDebugger(const lldb::SBDebugger &rhs);
@@ -41,6 +43,42 @@ public:
~SBDebugger();
+ static const char *GetBroadcasterClass();
+
+ lldb::SBBroadcaster GetBroadcaster();
+
+ /// Get progress data from a SBEvent whose type is eBroadcastBitProgress.
+ ///
+ /// \param [in] event
+ /// The event to extract the progress information from.
+ ///
+ /// \param [out] progress_id
+ /// The unique integer identifier for the progress to report.
+ ///
+ /// \param [out] completed
+ /// The amount of work completed. If \a completed is zero, then this event
+ /// is a progress started event. If \a completed is equal to \a total, then
+ /// this event is a progress end event. Otherwise completed indicates the
+ /// current progress update.
+ ///
+ /// \param [out] total
+ /// The total amount of work units that need to be completed. If this value
+ /// is UINT64_MAX, then an indeterminate progress indicator should be
+ /// displayed.
+ ///
+ /// \param [out] is_debugger_specific
+ /// Set to true if this progress is specific to this debugger only. Many
+ /// progress events are not specific to a debugger instance, like any
+ /// progress events for loading information in modules since LLDB has a
+ /// global module cache that all debuggers use.
+ ///
+ /// \return The message for the progress. If the returned value is NULL, then
+ /// \a event was not a eBroadcastBitProgress event.
+ static const char *GetProgressFromEvent(const lldb::SBEvent &event,
+ uint64_t &progress_id,
+ uint64_t &completed, uint64_t &total,
+ bool &is_debugger_specific);
+
lldb::SBDebugger &operator=(const lldb::SBDebugger &rhs);
static void Initialize();