Skip to content

Commit b9e3fa8

Browse files
[lldb][enums] Remove broadcast bits from debugger (llvm#91618)
Removes the debugger broadcast bits from `Debugger.h` and instead uses the enum from `lldb-enumerations.h` and adds the `eBroadcastSymbolChange` bit to the enum in `lldb-enumerations.h`. This fixes a bug wherein the incorrect broadcast bit could be referenced due both of these enums previously existing and being out-of-sync with each other.
1 parent 8585bf7 commit b9e3fa8

File tree

6 files changed

+24
-34
lines changed

6 files changed

+24
-34
lines changed

lldb/include/lldb/Core/Debugger.h

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -78,15 +78,6 @@ class Debugger : public std::enable_shared_from_this<Debugger>,
7878
public UserID,
7979
public Properties {
8080
public:
81-
/// Broadcaster event bits definitions.
82-
enum {
83-
eBroadcastBitProgress = (1 << 0),
84-
eBroadcastBitWarning = (1 << 1),
85-
eBroadcastBitError = (1 << 2),
86-
eBroadcastSymbolChange = (1 << 3),
87-
eBroadcastBitProgressCategory = (1 << 4),
88-
};
89-
9081
using DebuggerList = std::vector<lldb::DebuggerSP>;
9182

9283
static llvm::StringRef GetStaticBroadcasterClass();
@@ -628,7 +619,7 @@ class Debugger : public std::enable_shared_from_this<Debugger>,
628619
ReportProgress(uint64_t progress_id, std::string title, std::string details,
629620
uint64_t completed, uint64_t total,
630621
std::optional<lldb::user_id_t> debugger_id,
631-
uint32_t progress_category_bit = eBroadcastBitProgress);
622+
uint32_t progress_category_bit = lldb::eBroadcastBitProgress);
632623

633624
static void ReportDiagnosticImpl(lldb::Severity severity, std::string message,
634625
std::optional<lldb::user_id_t> debugger_id,

lldb/include/lldb/lldb-enumerations.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1344,7 +1344,8 @@ enum DebuggerBroadcastBit {
13441344
eBroadcastBitProgress = (1 << 0),
13451345
eBroadcastBitWarning = (1 << 1),
13461346
eBroadcastBitError = (1 << 2),
1347-
eBroadcastBitProgressCategory = (1 << 3),
1347+
eBroadcastSymbolChange = (1 << 3),
1348+
eBroadcastBitProgressCategory = (1 << 4),
13481349
};
13491350

13501351
/// Used for expressing severity in logs and diagnostics.

lldb/source/Core/Debugger.cpp

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1485,10 +1485,10 @@ static void PrivateReportDiagnostic(Debugger &debugger, Severity severity,
14851485
assert(false && "eSeverityInfo should not be broadcast");
14861486
return;
14871487
case eSeverityWarning:
1488-
event_type = Debugger::eBroadcastBitWarning;
1488+
event_type = lldb::eBroadcastBitWarning;
14891489
break;
14901490
case eSeverityError:
1491-
event_type = Debugger::eBroadcastBitError;
1491+
event_type = lldb::eBroadcastBitError;
14921492
break;
14931493
}
14941494

@@ -1572,7 +1572,7 @@ void Debugger::ReportSymbolChange(const ModuleSpec &module_spec) {
15721572
std::lock_guard<std::recursive_mutex> guard(*g_debugger_list_mutex_ptr);
15731573
for (DebuggerSP debugger_sp : *g_debugger_list_ptr) {
15741574
EventSP event_sp = std::make_shared<Event>(
1575-
Debugger::eBroadcastSymbolChange,
1575+
lldb::eBroadcastSymbolChange,
15761576
new SymbolChangeEventData(debugger_sp, module_spec));
15771577
debugger_sp->GetBroadcaster().BroadcastEvent(event_sp);
15781578
}
@@ -1879,8 +1879,9 @@ lldb::thread_result_t Debugger::DefaultEventHandler() {
18791879
CommandInterpreter::eBroadcastBitAsynchronousErrorData);
18801880

18811881
listener_sp->StartListeningForEvents(
1882-
&m_broadcaster, eBroadcastBitProgress | eBroadcastBitWarning |
1883-
eBroadcastBitError | eBroadcastSymbolChange);
1882+
&m_broadcaster, lldb::eBroadcastBitProgress | lldb::eBroadcastBitWarning |
1883+
lldb::eBroadcastBitError |
1884+
lldb::eBroadcastSymbolChange);
18841885

18851886
// Let the thread that spawned us know that we have started up and that we
18861887
// are now listening to all required events so no events get missed
@@ -1932,11 +1933,11 @@ lldb::thread_result_t Debugger::DefaultEventHandler() {
19321933
}
19331934
}
19341935
} else if (broadcaster == &m_broadcaster) {
1935-
if (event_type & Debugger::eBroadcastBitProgress)
1936+
if (event_type & lldb::eBroadcastBitProgress)
19361937
HandleProgressEvent(event_sp);
1937-
else if (event_type & Debugger::eBroadcastBitWarning)
1938+
else if (event_type & lldb::eBroadcastBitWarning)
19381939
HandleDiagnosticEvent(event_sp);
1939-
else if (event_type & Debugger::eBroadcastBitError)
1940+
else if (event_type & lldb::eBroadcastBitError)
19401941
HandleDiagnosticEvent(event_sp);
19411942
}
19421943
}

lldb/source/Core/Progress.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ void ProgressManager::ReportProgress(
172172
Debugger::ReportProgress(progress_data.progress_id, progress_data.title, "",
173173
completed, Progress::kNonDeterministicTotal,
174174
progress_data.debugger_id,
175-
Debugger::eBroadcastBitProgressCategory);
175+
lldb::eBroadcastBitProgressCategory);
176176
}
177177

178178
void ProgressManager::Expire(llvm::StringRef key) {

lldb/unittests/Core/DiagnosticEventTest.cpp

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,8 @@ TEST_F(DiagnosticEventTest, Warning) {
5555
ListenerSP listener_sp = Listener::MakeListener("test-listener");
5656

5757
listener_sp->StartListeningForEvents(&broadcaster,
58-
Debugger::eBroadcastBitWarning);
59-
EXPECT_TRUE(
60-
broadcaster.EventTypeHasListeners(Debugger::eBroadcastBitWarning));
58+
lldb::eBroadcastBitWarning);
59+
EXPECT_TRUE(broadcaster.EventTypeHasListeners(lldb::eBroadcastBitWarning));
6160

6261
Debugger::ReportWarning("foo", debugger_sp->GetID());
6362

@@ -80,9 +79,8 @@ TEST_F(DiagnosticEventTest, Error) {
8079
Broadcaster &broadcaster = debugger_sp->GetBroadcaster();
8180
ListenerSP listener_sp = Listener::MakeListener("test-listener");
8281

83-
listener_sp->StartListeningForEvents(&broadcaster,
84-
Debugger::eBroadcastBitError);
85-
EXPECT_TRUE(broadcaster.EventTypeHasListeners(Debugger::eBroadcastBitError));
82+
listener_sp->StartListeningForEvents(&broadcaster, lldb::eBroadcastBitError);
83+
EXPECT_TRUE(broadcaster.EventTypeHasListeners(lldb::eBroadcastBitError));
8684

8785
Debugger::ReportError("bar", debugger_sp->GetID());
8886

@@ -111,7 +109,7 @@ TEST_F(DiagnosticEventTest, MultipleDebuggers) {
111109
listeners.push_back(listener);
112110

113111
listener->StartListeningForEvents(&debugger->GetBroadcaster(),
114-
Debugger::eBroadcastBitError);
112+
lldb::eBroadcastBitError);
115113
}
116114

117115
Debugger::ReportError("baz");
@@ -140,9 +138,8 @@ TEST_F(DiagnosticEventTest, WarningOnce) {
140138
ListenerSP listener_sp = Listener::MakeListener("test-listener");
141139

142140
listener_sp->StartListeningForEvents(&broadcaster,
143-
Debugger::eBroadcastBitWarning);
144-
EXPECT_TRUE(
145-
broadcaster.EventTypeHasListeners(Debugger::eBroadcastBitWarning));
141+
lldb::eBroadcastBitWarning);
142+
EXPECT_TRUE(broadcaster.EventTypeHasListeners(lldb::eBroadcastBitWarning));
146143

147144
std::once_flag once;
148145
Debugger::ReportWarning("foo", debugger_sp->GetID(), &once);

lldb/unittests/Core/ProgressReportTest.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ class ProgressReportTest : public ::testing::Test {
6161
};
6262

6363
TEST_F(ProgressReportTest, TestReportCreation) {
64-
ListenerSP listener_sp = CreateListenerFor(Debugger::eBroadcastBitProgress);
64+
ListenerSP listener_sp = CreateListenerFor(lldb::eBroadcastBitProgress);
6565
EventSP event_sp;
6666
const ProgressEventData *data;
6767

@@ -135,7 +135,7 @@ TEST_F(ProgressReportTest, TestReportCreation) {
135135

136136
TEST_F(ProgressReportTest, TestProgressManager) {
137137
ListenerSP listener_sp =
138-
CreateListenerFor(Debugger::eBroadcastBitProgressCategory);
138+
CreateListenerFor(lldb::eBroadcastBitProgressCategory);
139139
EventSP event_sp;
140140
const ProgressEventData *data;
141141

@@ -173,7 +173,7 @@ TEST_F(ProgressReportTest, TestProgressManager) {
173173

174174
TEST_F(ProgressReportTest, TestOverlappingEvents) {
175175
ListenerSP listener_sp =
176-
CreateListenerFor(Debugger::eBroadcastBitProgressCategory);
176+
CreateListenerFor(lldb::eBroadcastBitProgressCategory);
177177
EventSP event_sp;
178178
const ProgressEventData *data;
179179

@@ -214,7 +214,7 @@ TEST_F(ProgressReportTest, TestOverlappingEvents) {
214214

215215
TEST_F(ProgressReportTest, TestProgressManagerDisjointReports) {
216216
ListenerSP listener_sp =
217-
CreateListenerFor(Debugger::eBroadcastBitProgressCategory);
217+
CreateListenerFor(lldb::eBroadcastBitProgressCategory);
218218
EventSP event_sp;
219219
const ProgressEventData *data;
220220
uint64_t expected_progress_id;

0 commit comments

Comments
 (0)