diff options
author | Med Ismail Bennani <medismail.bennani@gmail.com> | 2022-02-16 11:43:44 -0800 |
---|---|---|
committer | Med Ismail Bennani <medismail.bennani@gmail.com> | 2022-02-16 11:44:07 -0800 |
commit | 7c54ffdc6c2e55565344a8d6200f63ee016891a9 (patch) | |
tree | 680730c958d2e70a3503b6f7c8e5f0e8c1c87fba /lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp | |
parent | 7f3fc2eee8ff13f6922a16331870fc57cd022773 (diff) | |
download | llvm-7c54ffdc6c2e55565344a8d6200f63ee016891a9.zip llvm-7c54ffdc6c2e55565344a8d6200f63ee016891a9.tar.gz llvm-7c54ffdc6c2e55565344a8d6200f63ee016891a9.tar.bz2 |
[lldb/crashlog] Add CrashLogScriptedProcess & remove interactive mode
This patch introduces a new type of ScriptedProcess: CrashLogScriptedProcess.
It takes advantage of lldb's crashlog parsers and Scripted Processes to
reconstruct a static debugging session with symbolicated stackframes, instead
of just dumping out everything in the user's terminal.
The crashlog command also has an interactive mode that only provide a
very limited experience. This is why this patch removes all the logic
for this interactive mode and creates CrashLogScriptedProcess instead.
This will fetch and load all the libraries that were used by the crashed
thread and re-create all the frames artificially.
rdar://88721117
Differential Revision: https://reviews.llvm.org/D119501
Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
Diffstat (limited to 'lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp')
-rw-r--r-- | lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp b/lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp index 1abf0f14..96ae305f8 100644 --- a/lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp +++ b/lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp @@ -303,6 +303,9 @@ bool ScriptedProcess::DoUpdateThreadList(ThreadList &old_thread_list, StructuredData::DictionarySP thread_info_sp = GetInterface().GetThreadsInfo(); + // FIXME: Need to sort the dictionary otherwise the thread ids won't match the + // thread indices. + if (!thread_info_sp) return ScriptedInterface::ErrorWithMessage<bool>( LLVM_PRETTY_FUNCTION, |