llvm-project/lldb/source/Interpreter
Martin Storsjö 8a3597d73c [lldb] Fix CommandInterpreter::DidProcessStopAbnormally() with multiple threads
If a process has multiple threads, the thread with the stop
info might not be the first one in the thread list.

On Windows, under certain circumstances, processes seem to have
one or more extra threads that haven't been launched by the
executable itself, waiting in NtWaitForWorkViaWorkerFactory. If the
main (stopped) thread isn't the first one in the list (the order
seems nondeterministic), DidProcessStopAbnormally() would return
false prematurely, instead of inspecting later threads.

The main observable effect of DidProcessStopAbnormally() erroneously
returning false, is when running lldb with multiple "-o" parameters
to specify multiple commands to execute on the command line.

After an abnormal stop, lldb would stop executing "-o" parameters
and execute "-k" parameters instead - but due to this issue, it
would instead keep executing "-o" parameters as if there was no
abnormal stop. (If multiple parameters are specified via a script
file via the "-s" option, all of the commands in that file are
executed regardless of whether there's an abnormal stop inbetween.)

Differential Revision: https://reviews.llvm.org/D134037
2022-09-26 11:05:42 +03:00
..
CMakeLists.txt [lldb] Change implementation of memory read --show-tags option 2022-05-18 16:49:09 +01:00
CommandAlias.cpp Revert "Revert "Be more careful to maintain quoting information when parsing commands."" 2022-09-14 14:49:51 -07:00
CommandHistory.cpp [lldb][NFC] Use C++ versions of the deprecated C standard library headers 2021-05-26 12:46:12 +02:00
CommandInterpreter.cpp [lldb] Fix CommandInterpreter::DidProcessStopAbnormally() with multiple threads 2022-09-26 11:05:42 +03:00
CommandObject.cpp Revert "Revert "Be more careful to maintain quoting information when parsing commands."" 2022-09-14 14:49:51 -07:00
CommandOptionValidators.cpp
CommandReturnObject.cpp [lldb] Show the DBGError if dsymForUUID can't find a dSYM 2022-04-14 16:54:00 -07:00
InterpreterProperties.td Add a setting to not require --overwrite to overwrite commands. 2022-03-31 14:15:14 -07:00
OptionArgParser.cpp [lldb] Rename StringRef _lower() method calls to _insensitive() 2021-06-25 00:22:01 +03:00
OptionGroupArchitecture.cpp
OptionGroupBoolean.cpp
OptionGroupFile.cpp [lldb] Replace default bodies of special member functions with = default; 2021-07-02 11:31:16 -07:00
OptionGroupFormat.cpp [LLDB][NFC][Reliability] Fix uninitialized variables from Coverity scan. Part 3 2022-07-27 10:39:49 -07:00
OptionGroupMemoryTag.cpp [lldb] Add --show-tags option to "memory find" 2022-05-19 14:40:01 +01:00
OptionGroupOutputFile.cpp
OptionGroupPlatform.cpp [lldb] Create an enum to specify the kind of ArchSpec matching 2022-08-02 16:20:13 +02:00
OptionGroupPythonClassWithDict.cpp [lldb/Interpreter] Make OptionGroupPythonClassWithDict options non-required 2021-03-04 20:24:26 +01:00
OptionGroupString.cpp
OptionGroupUInt64.cpp
OptionGroupUUID.cpp
OptionGroupValueObjectDisplay.cpp [lldb] Add setting for max depth of value object printing (NFC) 2022-05-03 10:39:42 -07:00
OptionGroupVariable.cpp [LLDB][NFC][Reliability] Fix uninitialized variables from Coverity scan. Part 3 2022-07-27 10:39:49 -07:00
OptionGroupWatchpoint.cpp
OptionValue.cpp [lldb][NFC] Remove all uses of StringRef::withNullAsEmpty in LLDB 2021-05-18 09:41:20 +02:00
OptionValueArch.cpp [lldb/Interpreter] Fix deep copying for OptionValue classes 2021-02-28 19:23:25 +03:00
OptionValueArgs.cpp
OptionValueArray.cpp Add SBDebugger::GetSetting() public APIs 2022-09-11 20:50:03 -07:00
OptionValueBoolean.cpp [lldb/Interpreter] Fix deep copying for OptionValue classes 2021-02-28 19:23:25 +03:00
OptionValueChar.cpp [lldb/Interpreter] Fix deep copying for OptionValue classes 2021-02-28 19:23:25 +03:00
OptionValueDictionary.cpp Add SBDebugger::GetSetting() public APIs 2022-09-11 20:50:03 -07:00
OptionValueEnumeration.cpp [lldb/Interpreter] Fix deep copying for OptionValue classes 2021-02-28 19:23:25 +03:00
OptionValueFileColonLine.cpp [LLDB] Applying clang-tidy modernize-use-default-member-init over LLDB 2022-03-14 13:32:03 -07:00
OptionValueFileSpec.cpp [LLDB] Applying clang-tidy modernize-use-default-member-init over LLDB 2022-03-14 13:32:03 -07:00
OptionValueFileSpecList.cpp [lldb] LLVM_FALLTHROUGH => [[fallthrough]]. NFC 2022-08-08 11:31:49 -07:00
OptionValueFormat.cpp Add SBDebugger::GetSetting() public APIs 2022-09-11 20:50:03 -07:00
OptionValueFormatEntity.cpp Add SBDebugger::GetSetting() public APIs 2022-09-11 20:50:03 -07:00
OptionValueLanguage.cpp Add SBDebugger::GetSetting() public APIs 2022-09-11 20:50:03 -07:00
OptionValuePathMappings.cpp Add SBDebugger::GetSetting() public APIs 2022-09-11 20:50:03 -07:00
OptionValueProperties.cpp Add SBDebugger::GetSetting() public APIs 2022-09-11 20:50:03 -07:00
OptionValueRegex.cpp [lldb/Interpreter] Fix deep copying for OptionValue classes 2021-02-28 19:23:25 +03:00
OptionValueSInt64.cpp [lldb] Convert misc. StringConvert uses 2021-09-25 14:19:19 +02:00
OptionValueString.cpp [lldb/Interpreter] Fix deep copying for OptionValue classes 2021-02-28 19:23:25 +03:00
OptionValueUInt64.cpp [lldb] Convert misc. StringConvert uses 2021-09-25 14:19:19 +02:00
OptionValueUUID.cpp [lldb/Interpreter] Fix deep copying for OptionValue classes 2021-02-28 19:23:25 +03:00
Options.cpp Revert "Revert "Be more careful to maintain quoting information when parsing commands."" 2022-09-14 14:49:51 -07:00
Property.cpp [lldb] Add setting to override PE/COFF ABI by module name 2022-06-22 17:16:06 +03:00
ScriptInterpreter.cpp Fix a copy-paste error in "br com add -s py -o 'some_python' BKPT_NAME" 2022-05-31 17:24:14 -07:00
embedded_interpreter.py Fix `script -lpython` to handle control flow in one-line commands. 2022-06-15 22:20:48 -07:00