A test that was passing locally failed on the bot after submitting this patch. Not sure what the difference is yet.
Jim > On Feb 25, 2019, at 12:22 PM, Zachary Turner <ztur...@google.com> wrote: > > While it’s a good chuckle, can you elaborate on what exactly the commit > message means? > On Fri, Feb 22, 2019 at 5:07 PM Jim Ingham via lldb-commits > <lldb-commits@lists.llvm.org> wrote: > Author: jingham > Date: Fri Feb 22 17:08:17 2019 > New Revision: 354711 > > URL: http://llvm.org/viewvc/llvm-project?rev=354711&view=rev > Log: > Revert r354706 - lit touched my thigh > > Modified: > lldb/trunk/include/lldb/Target/Process.h > lldb/trunk/include/lldb/Target/Target.h > lldb/trunk/lit/ExecControl/StopHook/Inputs/stop-hook-2.lldbinit > lldb/trunk/lit/ExecControl/StopHook/Inputs/stop-hook-3.lldbinit > lldb/trunk/lit/ExecControl/StopHook/Inputs/stop-hook-threads-1.lldbinit > lldb/trunk/lit/ExecControl/StopHook/Inputs/stop-hook-threads-2.lldbinit > lldb/trunk/lit/ExecControl/StopHook/Inputs/stop-hook-threads.cpp > lldb/trunk/lit/ExecControl/StopHook/stop-hook-threads.test > lldb/trunk/lit/ExecControl/StopHook/stop-hook.test > lldb/trunk/source/Commands/CommandObjectTarget.cpp > lldb/trunk/source/Target/Process.cpp > lldb/trunk/source/Target/Target.cpp > > Modified: lldb/trunk/include/lldb/Target/Process.h > URL: > http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Target/Process.h?rev=354711&r1=354710&r2=354711&view=diff > ============================================================================== > --- lldb/trunk/include/lldb/Target/Process.h (original) > +++ lldb/trunk/include/lldb/Target/Process.h Fri Feb 22 17:08:17 2019 > @@ -2519,8 +2519,6 @@ public: > /// > //------------------------------------------------------------------ > void RestoreProcessEvents(); > - > - bool IsHijackedForSynchronousResume(); > > const lldb::ABISP &GetABI(); > > > Modified: lldb/trunk/include/lldb/Target/Target.h > URL: > http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Target/Target.h?rev=354711&r1=354710&r2=354711&view=diff > ============================================================================== > --- lldb/trunk/include/lldb/Target/Target.h (original) > +++ lldb/trunk/include/lldb/Target/Target.h Fri Feb 22 17:08:17 2019 > @@ -1153,10 +1153,6 @@ public: > > void SetIsActive(bool is_active) { m_active = is_active; } > > - void SetAutoContinue(bool auto_continue) {m_auto_continue = > auto_continue;} > - > - bool GetAutoContinue() const { return m_auto_continue; } > - > void GetDescription(Stream *s, lldb::DescriptionLevel level) const; > > private: > @@ -1164,8 +1160,7 @@ public: > StringList m_commands; > lldb::SymbolContextSpecifierSP m_specifier_sp; > std::unique_ptr<ThreadSpec> m_thread_spec_up; > - bool m_active = true; > - bool m_auto_continue = false; > + bool m_active; > > // Use CreateStopHook to make a new empty stop hook. The > GetCommandPointer > // and fill it with commands, and SetSpecifier to set the specifier > shared > > Modified: lldb/trunk/lit/ExecControl/StopHook/Inputs/stop-hook-2.lldbinit > URL: > http://llvm.org/viewvc/llvm-project/lldb/trunk/lit/ExecControl/StopHook/Inputs/stop-hook-2.lldbinit?rev=354711&r1=354710&r2=354711&view=diff > ============================================================================== > --- lldb/trunk/lit/ExecControl/StopHook/Inputs/stop-hook-2.lldbinit (original) > +++ lldb/trunk/lit/ExecControl/StopHook/Inputs/stop-hook-2.lldbinit Fri Feb > 22 17:08:17 2019 > @@ -1 +1 @@ > -target stop-hook add -f stop-hook.c -l 29 -e 34 -o "expr ptr" > +target stop-hook add -f stop-hook.c -l 29 -e 34 -o "expr ptr" > \ No newline at end of file > > Modified: lldb/trunk/lit/ExecControl/StopHook/Inputs/stop-hook-3.lldbinit > URL: > http://llvm.org/viewvc/llvm-project/lldb/trunk/lit/ExecControl/StopHook/Inputs/stop-hook-3.lldbinit?rev=354711&r1=354710&r2=354711&view=diff > ============================================================================== > --- lldb/trunk/lit/ExecControl/StopHook/Inputs/stop-hook-3.lldbinit (original) > +++ lldb/trunk/lit/ExecControl/StopHook/Inputs/stop-hook-3.lldbinit Fri Feb > 22 17:08:17 2019 > @@ -1,3 +1,3 @@ > target stop-hook add -f stop-hook.c -l 29 -e 34 > expr ptr > -DONE > +DONE > \ No newline at end of file > > Modified: > lldb/trunk/lit/ExecControl/StopHook/Inputs/stop-hook-threads-1.lldbinit > URL: > http://llvm.org/viewvc/llvm-project/lldb/trunk/lit/ExecControl/StopHook/Inputs/stop-hook-threads-1.lldbinit?rev=354711&r1=354710&r2=354711&view=diff > ============================================================================== > --- lldb/trunk/lit/ExecControl/StopHook/Inputs/stop-hook-threads-1.lldbinit > (original) > +++ lldb/trunk/lit/ExecControl/StopHook/Inputs/stop-hook-threads-1.lldbinit > Fri Feb 22 17:08:17 2019 > @@ -1,7 +1,7 @@ > -break set -f stop-hook-threads.cpp -p "Break here to set up the stop hook" > break set -f stop-hook-threads.cpp -p "Break here to test that the stop-hook" > run > -target stop-hook add -G true > -expr lldb_val += 1 > +target stop-hook add > +frame variable --show-globals g_val > thread list > +continue > DONE > > Modified: > lldb/trunk/lit/ExecControl/StopHook/Inputs/stop-hook-threads-2.lldbinit > URL: > http://llvm.org/viewvc/llvm-project/lldb/trunk/lit/ExecControl/StopHook/Inputs/stop-hook-threads-2.lldbinit?rev=354711&r1=354710&r2=354711&view=diff > ============================================================================== > --- lldb/trunk/lit/ExecControl/StopHook/Inputs/stop-hook-threads-2.lldbinit > (original) > +++ lldb/trunk/lit/ExecControl/StopHook/Inputs/stop-hook-threads-2.lldbinit > Fri Feb 22 17:08:17 2019 > @@ -1,5 +1,4 @@ > -break set -f stop-hook-threads.cpp -p "Break here to set up the stop hook" > break set -f stop-hook-threads.cpp -p "Break here to test that the stop-hook" > run > -target stop-hook add -x 2 -o "expr lldb_val += 1" -o "thread list" > -target stop-hook add -G true -o "script print('Hit stop hook') > +target stop-hook add -x 2 -o "frame variable thread_index" > +target stop-hook add -o continue > > Modified: lldb/trunk/lit/ExecControl/StopHook/Inputs/stop-hook-threads.cpp > URL: > http://llvm.org/viewvc/llvm-project/lldb/trunk/lit/ExecControl/StopHook/Inputs/stop-hook-threads.cpp?rev=354711&r1=354710&r2=354711&view=diff > ============================================================================== > --- lldb/trunk/lit/ExecControl/StopHook/Inputs/stop-hook-threads.cpp > (original) > +++ lldb/trunk/lit/ExecControl/StopHook/Inputs/stop-hook-threads.cpp Fri Feb > 22 17:08:17 2019 > @@ -16,7 +16,6 @@ std::default_random_engine g_random_engi > std::uniform_int_distribution<> g_distribution{0, 3000}; > > uint32_t g_val = 0; > -uint32_t lldb_val = 0; > > uint32_t > access_pool (bool flag = false) > @@ -63,8 +62,7 @@ thread_func (uint32_t thread_index) > int main (int argc, char const *argv[]) > { > std::thread threads[3]; > - // Break here to set up the stop hook > - printf("Stop hooks engaged.\n"); > + > // Create 3 threads > for (auto &thread : threads) > thread = std::thread{thread_func, std::distance(threads, &thread)}; > @@ -73,7 +71,5 @@ int main (int argc, char const *argv[]) > for (auto &thread : threads) > thread.join(); > > - // print lldb_val so we can check it here. > - printf ("lldb_val was set to: %d.\n", lldb_val); > return 0; > } > > Modified: lldb/trunk/lit/ExecControl/StopHook/stop-hook-threads.test > URL: > http://llvm.org/viewvc/llvm-project/lldb/trunk/lit/ExecControl/StopHook/stop-hook-threads.test?rev=354711&r1=354710&r2=354711&view=diff > ============================================================================== > --- lldb/trunk/lit/ExecControl/StopHook/stop-hook-threads.test (original) > +++ lldb/trunk/lit/ExecControl/StopHook/stop-hook-threads.test Fri Feb 22 > 17:08:17 2019 > @@ -4,6 +4,7 @@ > # RUN: %lldb -b -s %p/Inputs/stop-hook-threads-2.lldbinit -s %s -f %t \ > # RUN: | FileCheck --check-prefix=CHECK --check-prefix=CHECK-FILTER %s > # XFAIL: system-windows > +# UNSUPPORTED: linux > > thread list > break set -f stop-hook-threads.cpp -p "Set break point at this line" > @@ -11,22 +12,23 @@ target stop-hook list > > # CHECK: Hook: 1 > # CHECK-NEXT: State: enabled > -# CHECK-NO-FILTER-NEXT: AutoContinue on > # CHECK-FILTER-NEXT: Thread > # CHECK-FILTER-NEXT: index: 2 > # CHECK-NEXT: Commands: > -# CHECK-NEXT: expr lldb_val += 1 > -# CHECK-NEXT: thread list > +# CHECK-NEXT: frame variable > > # CHECK-FILTER: Hook: 2 > # CHECK-FILTER-NEXT: State: enabled > -# CHECK-FILTER-NEXT: AutoContinue on > # CHECK-FILTER-NEXT: Commands: > -# CHECK-FILTER-NEXT: script print('Hit stop hook') > +# CHECK-FILTER-NEXT: continue > > # Get the threads going > continue > > -# Now make sure we hit the command the right number of times: > -# CHECK-NO-FILTER: lldb_val was set to: 15. > -# CHECK-FILTER: lldb_val was set to: 5. > +# When we filter per thread, we expect exactly 4 identical "frame var" > results > +# CHECK-FILTER: (uint32_t) thread_index = [[THREAD_INDEX:[0-9]*]] > +# CHECK-FILTER-COUNT-3: (uint32_t) thread_index = [[THREAD_INDEX]] > +# CHECK-FILTER-NOT: thread_index > + > +# When we don't filter, we expect to count 12 stopped threads in the thread > list output > +# CHECK-NO-FILTER-COUNT-12: at stop-hook-threads.cpp{{.*}} stop reason = > breakpoint > \ No newline at end of file > > Modified: lldb/trunk/lit/ExecControl/StopHook/stop-hook.test > URL: > http://llvm.org/viewvc/llvm-project/lldb/trunk/lit/ExecControl/StopHook/stop-hook.test?rev=354711&r1=354710&r2=354711&view=diff > ============================================================================== > --- lldb/trunk/lit/ExecControl/StopHook/stop-hook.test (original) > +++ lldb/trunk/lit/ExecControl/StopHook/stop-hook.test Fri Feb 22 17:08:17 > 2019 > @@ -11,7 +11,6 @@ > # string, so the test "passes" despite the fact that the commands failed > # llvm.org/pr40119 > # UNSUPPORTED: system-windows > -# XFAIL: system-linux > > break set -f stop-hook.c -p "// Set breakpoint here to test target stop-hook" > break set -f stop-hook.c -p "// Another breakpoint which is outside of the > stop-hook range" > @@ -47,7 +46,9 @@ target stop-hook list > run > # Stopping inside of the stop hook range > # CHECK: (lldb) run > +# CHECK-NEXT: Process {{.*}} launched: > # CHECK-NEXT: (void *) $0 = 0x > +# CHECK-NEXT: Process {{.*}} stopped > > thread step-over > # Stepping inside of the stop hook range > > Modified: lldb/trunk/source/Commands/CommandObjectTarget.cpp > URL: > http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Commands/CommandObjectTarget.cpp?rev=354711&r1=354710&r2=354711&view=diff > ============================================================================== > --- lldb/trunk/source/Commands/CommandObjectTarget.cpp (original) > +++ lldb/trunk/source/Commands/CommandObjectTarget.cpp Fri Feb 22 17:08:17 > 2019 > @@ -4555,7 +4555,7 @@ private: > > static constexpr OptionDefinition g_target_stop_hook_add_options[] = { > // clang-format off > - { LLDB_OPT_SET_ALL, false, "one-liner", 'o', > OptionParser::eRequiredArgument, nullptr, {}, 0, eArgTypeOneLiner, > "Add a command for the stop hook. Can be > specified more than once, and commands will be run in the order they appear." > }, > + { LLDB_OPT_SET_ALL, false, "one-liner", 'o', > OptionParser::eRequiredArgument, nullptr, {}, 0, eArgTypeOneLiner, > "Specify a one-line breakpoint command inline. > Be sure to surround it with quotes." }, > { LLDB_OPT_SET_ALL, false, "shlib", 's', > OptionParser::eRequiredArgument, nullptr, {}, > CommandCompletions::eModuleCompletion, eArgTypeShlibName, "Set the module > within which the stop-hook is to be run." }, > { LLDB_OPT_SET_ALL, false, "thread-index", 'x', > OptionParser::eRequiredArgument, nullptr, {}, 0, eArgTypeThreadIndex, > "The stop hook is run only for the thread whose > index matches this argument." }, > { LLDB_OPT_SET_ALL, false, "thread-id", 't', > OptionParser::eRequiredArgument, nullptr, {}, 0, eArgTypeThreadID, > "The stop hook is run only for the thread whose > TID matches this argument." }, > @@ -4566,7 +4566,6 @@ static constexpr OptionDefinition g_targ > { LLDB_OPT_SET_1, false, "end-line", 'e', > OptionParser::eRequiredArgument, nullptr, {}, 0, eArgTypeLineNum, > "Set the end of the line range for which the > stop-hook is to be run." }, > { LLDB_OPT_SET_2, false, "classname", 'c', > OptionParser::eRequiredArgument, nullptr, {}, 0, eArgTypeClassName, > "Specify the class within which the stop-hook is > to be run." }, > { LLDB_OPT_SET_3, false, "name", 'n', > OptionParser::eRequiredArgument, nullptr, {}, > CommandCompletions::eSymbolCompletion, eArgTypeFunctionName, "Set the > function name within which the stop hook will be run." }, > - { LLDB_OPT_SET_ALL, false, "auto-continue",'G', > OptionParser::eRequiredArgument, nullptr, {}, 0, eArgTypeBoolean, "The > breakpoint will auto-continue after running its commands." }, > // clang-format on > }; > > @@ -4607,17 +4606,6 @@ public: > m_sym_ctx_specified = true; > break; > > - case 'G': { > - bool value, success; > - value = OptionArgParser::ToBoolean(option_arg, false, &success); > - if (success) { > - m_auto_continue = value; > - } else > - error.SetErrorStringWithFormat( > - "invalid boolean value '%s' passed for -G option", > - option_arg.str().c_str()); > - } > - break; > case 'l': > if (option_arg.getAsInteger(0, m_line_start)) { > error.SetErrorStringWithFormat("invalid start line number: \"%s\"", > @@ -4673,7 +4661,7 @@ public: > > case 'o': > m_use_one_liner = true; > - m_one_liner.push_back(option_arg); > + m_one_liner = option_arg; > break; > > default: > @@ -4702,7 +4690,6 @@ public: > > m_use_one_liner = false; > m_one_liner.clear(); > - m_auto_continue = false; > } > > std::string m_class_name; > @@ -4721,8 +4708,7 @@ public: > bool m_thread_specified; > // Instance variables to hold the values for one_liner options. > bool m_use_one_liner; > - std::vector<std::string> m_one_liner; > - bool m_auto_continue; > + std::string m_one_liner; > }; > > CommandObjectTargetStopHookAdd(CommandInterpreter &interpreter) > @@ -4847,13 +4833,10 @@ protected: > > new_hook_sp->SetThreadSpecifier(thread_spec); > } > - > - new_hook_sp->SetAutoContinue(m_options.m_auto_continue); > if (m_options.m_use_one_liner) { > - // Use one-liners. > - for (auto cmd : m_options.m_one_liner) > - new_hook_sp->GetCommandPointer()->AppendString( > - cmd.c_str()); > + // Use one-liner. > + new_hook_sp->GetCommandPointer()->AppendString( > + m_options.m_one_liner.c_str()); > result.AppendMessageWithFormat("Stop hook #%" PRIu64 " added.\n", > new_hook_sp->GetID()); > } else { > > Modified: lldb/trunk/source/Target/Process.cpp > URL: > http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Target/Process.cpp?rev=354711&r1=354710&r2=354711&view=diff > ============================================================================== > --- lldb/trunk/source/Target/Process.cpp (original) > +++ lldb/trunk/source/Target/Process.cpp Fri Feb 22 17:08:17 2019 > @@ -1615,8 +1615,6 @@ Status Process::Resume() { > return error; > } > > -static const char *g_resume_sync_name = > "lldb.Process.ResumeSynchronous.hijack"; > - > Status Process::ResumeSynchronous(Stream *stream) { > Log *log(lldb_private::GetLogIfAnyCategoriesSet(LIBLLDB_LOG_STATE | > LIBLLDB_LOG_PROCESS)); > @@ -1630,7 +1628,7 @@ Status Process::ResumeSynchronous(Stream > } > > ListenerSP listener_sp( > - Listener::MakeListener(g_resume_sync_name)); > + Listener::MakeListener("lldb.Process.ResumeSynchronous.hijack")); > HijackProcessEvents(listener_sp); > > Status error = PrivateResume(); > @@ -1654,11 +1652,6 @@ Status Process::ResumeSynchronous(Stream > return error; > } > > -bool Process::IsHijackedForSynchronousResume() { > - const char *hijacker_name = GetHijackingListenerName(); > - return strcmp(hijacker_name, g_resume_sync_name) == 0; > -} > - > StateType Process::GetPrivateState() { return m_private_state.GetValue(); } > > void Process::SetPrivateState(StateType new_state) { > @@ -4267,20 +4260,11 @@ void Process::ProcessEventData::DoOnRemo > // public resume. > process_sp->PrivateResume(); > } else { > - bool hijacked = > - process_sp->IsHijackedForEvent(eBroadcastBitStateChanged) > - && !process_sp->IsHijackedForSynchronousResume(); > - > - if (!hijacked) { > - // If we didn't restart, run the Stop Hooks here. > - // Don't do that if state changed events aren't hooked up to the > - // public (or SyncResume) broadcasters. StopHooks are just for > - // real public stops. They might also restart the target, > - // so watch for that. > - process_sp->GetTarget().RunStopHooks(); > - if (process_sp->GetPrivateState() == eStateRunning) > - SetRestarted(true); > - } > + // If we didn't restart, run the Stop Hooks here: They might also > + // restart the target, so watch for that. > + process_sp->GetTarget().RunStopHooks(); > + if (process_sp->GetPrivateState() == eStateRunning) > + SetRestarted(true); > } > } > } > > Modified: lldb/trunk/source/Target/Target.cpp > URL: > http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Target/Target.cpp?rev=354711&r1=354710&r2=354711&view=diff > ============================================================================== > --- lldb/trunk/source/Target/Target.cpp (original) > +++ lldb/trunk/source/Target/Target.cpp Fri Feb 22 17:08:17 2019 > @@ -2554,14 +2554,12 @@ void Target::RunStopHooks() { > > StopHookCollection::iterator pos, end = m_stop_hooks.end(); > > - // If there aren't any active stop hooks, don't bother either. > - // Also see if any of the active hooks want to auto-continue. > + // If there aren't any active stop hooks, don't bother either: > bool any_active_hooks = false; > - bool auto_continue = false; > - for (auto hook : m_stop_hooks) { > - if (hook.second->IsActive()) { > + for (pos = m_stop_hooks.begin(); pos != end; pos++) { > + if ((*pos).second->IsActive()) { > any_active_hooks = true; > - auto_continue |= hook.second->GetAutoContinue(); > + break; > } > } > if (!any_active_hooks) > @@ -2597,7 +2595,6 @@ void Target::RunStopHooks() { > bool hooks_ran = false; > bool print_hook_header = (m_stop_hooks.size() != 1); > bool print_thread_header = (num_exe_ctx != 1); > - bool did_restart = false; > > for (pos = m_stop_hooks.begin(); keep_going && pos != end; pos++) { > // result.Clear(); > @@ -2642,13 +2639,10 @@ void Target::RunStopHooks() { > options.SetPrintResults(true); > options.SetAddToHistory(false); > > - // Force Async: > - bool old_async = GetDebugger().GetAsyncExecution(); > - GetDebugger().SetAsyncExecution(true); > GetDebugger().GetCommandInterpreter().HandleCommands( > cur_hook_sp->GetCommands(), &exc_ctx_with_reasons[i], options, > result); > - GetDebugger().SetAsyncExecution(old_async); > + > // If the command started the target going again, we should bag out > of > // running the stop hooks. > if ((result.GetStatus() == eReturnStatusSuccessContinuingNoResult) || > @@ -2657,19 +2651,13 @@ void Target::RunStopHooks() { > StopHookCollection::iterator tmp = pos; > if (++tmp != end) > result.AppendMessageWithFormat("\nAborting stop hooks, hook %" > PRIu64 > - " set the program running.\n" > - " Consider using '-G true' to > make " > - "stop hooks auto-continue.\n", > + " set the program running.\n", > cur_hook_sp->GetID()); > keep_going = false; > - did_restart = true; > } > } > } > } > - // Finally, if auto-continue was requested, do it now: > - if (!did_restart && auto_continue) > - m_process_sp->PrivateResume(); > > result.GetImmediateOutputStream()->Flush(); > result.GetImmediateErrorStream()->Flush(); > @@ -3155,13 +3143,12 @@ void Target::FinalizeFileActions(Process > //-------------------------------------------------------------- > Target::StopHook::StopHook(lldb::TargetSP target_sp, lldb::user_id_t uid) > : UserID(uid), m_target_sp(target_sp), m_commands(), m_specifier_sp(), > - m_thread_spec_up() {} > + m_thread_spec_up(), m_active(true) {} > > Target::StopHook::StopHook(const StopHook &rhs) > : UserID(rhs.GetID()), m_target_sp(rhs.m_target_sp), > m_commands(rhs.m_commands), m_specifier_sp(rhs.m_specifier_sp), > - m_thread_spec_up(), m_active(rhs.m_active), > - m_auto_continue(rhs.m_auto_continue) { > + m_thread_spec_up(), m_active(rhs.m_active) { > if (rhs.m_thread_spec_up) > m_thread_spec_up.reset(new ThreadSpec(*rhs.m_thread_spec_up)); > } > @@ -3188,9 +3175,6 @@ void Target::StopHook::GetDescription(St > else > s->Indent("State: disabled\n"); > > - if (m_auto_continue) > - s->Indent("AutoContinue on\n"); > - > if (m_specifier_sp) { > s->Indent(); > s->PutCString("Specifier:\n"); > > > _______________________________________________ > lldb-commits mailing list > lldb-commits@lists.llvm.org > https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits