[Lldb-commits] [lldb] r367494 - [Reproducers] Force replay in synchronous mode.
Jonas Devlieghere via lldb-commits
lldb-commits at lists.llvm.org
Wed Jul 31 16:34:45 PDT 2019
Author: jdevlieghere
Date: Wed Jul 31 16:34:45 2019
New Revision: 367494
URL: http://llvm.org/viewvc/llvm-project?rev=367494&view=rev
Log:
[Reproducers] Force replay in synchronous mode.
Replaying a reproducer in asynchronous mode never makes sense. This
patch disables asynchronous mode during replay.
Differential revision: https://reviews.llvm.org/D65547
Added:
lldb/trunk/lit/Reproducer/TestSynchronous.test
Modified:
lldb/trunk/source/Interpreter/CommandInterpreter.cpp
Added: lldb/trunk/lit/Reproducer/TestSynchronous.test
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/lit/Reproducer/TestSynchronous.test?rev=367494&view=auto
==============================================================================
--- lldb/trunk/lit/Reproducer/TestSynchronous.test (added)
+++ lldb/trunk/lit/Reproducer/TestSynchronous.test Wed Jul 31 16:34:45 2019
@@ -0,0 +1,13 @@
+# Ensure that replay happens in synchronous mode.
+
+# RUN: rm -rf %t.repro
+# RUN: %lldb -x -b --capture --capture-path %t.repro -o 'script lldb.debugger.SetAsync(True)' -o 'script lldb.debugger.GetAsync()' -o 'reproducer generate' | FileCheck %s --check-prefix CAPTURE
+# RUN: %lldb --replay %t.repro | FileCheck %s --check-prefix REPLAY
+
+# CAPTURE: script lldb.debugger.SetAsync(True)
+# CAPTURE-NEXT: script lldb.debugger.GetAsync()
+# CAPTURE-NEXT: True
+
+# REPLAY: script lldb.debugger.SetAsync(True)
+# REPLAY-NEXT: script lldb.debugger.GetAsync()
+# REPLAY-NEXT: False
Modified: lldb/trunk/source/Interpreter/CommandInterpreter.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Interpreter/CommandInterpreter.cpp?rev=367494&r1=367493&r2=367494&view=diff
==============================================================================
--- lldb/trunk/source/Interpreter/CommandInterpreter.cpp (original)
+++ lldb/trunk/source/Interpreter/CommandInterpreter.cpp Wed Jul 31 16:34:45 2019
@@ -109,7 +109,7 @@ CommandInterpreter::CommandInterpreter(D
Properties(OptionValuePropertiesSP(
new OptionValueProperties(ConstString("interpreter")))),
IOHandlerDelegate(IOHandlerDelegate::Completion::LLDBCommand),
- m_debugger(debugger), m_synchronous_execution(synchronous_execution),
+ m_debugger(debugger), m_synchronous_execution(true),
m_skip_lldbinit_files(false), m_skip_app_init_files(false),
m_command_io_handler_sp(), m_comment_char('#'),
m_batch_command_mode(false), m_truncation_warning(eNoTruncation),
@@ -118,6 +118,7 @@ CommandInterpreter::CommandInterpreter(D
SetEventName(eBroadcastBitThreadShouldExit, "thread-should-exit");
SetEventName(eBroadcastBitResetPrompt, "reset-prompt");
SetEventName(eBroadcastBitQuitCommandReceived, "quit");
+ SetSynchronous(synchronous_execution);
CheckInWithManager();
m_collection_sp->Initialize(g_interpreter_properties);
}
@@ -2504,6 +2505,9 @@ void CommandInterpreter::HandleCommandsF
bool CommandInterpreter::GetSynchronous() { return m_synchronous_execution; }
void CommandInterpreter::SetSynchronous(bool value) {
+ // Asynchronous mode is not supported during reproducer replay.
+ if (repro::Reproducer::Instance().GetLoader())
+ return;
m_synchronous_execution = value;
}
More information about the lldb-commits
mailing list