jasonmolenda created this revision.
jasonmolenda added reviewers: JDevlieghere, mib.
jasonmolenda added a project: LLDB.
Herald added a project: All.
jasonmolenda requested review of this revision.
Herald added a subscriber: lldb-commits.
`ProcessMachCore::DoLoadCore` has an error check that if it found no thread
contexts (`LC_THREAD`s), it is an improperly formed corefile and will be
rejected. We have a group that is creating memory-only corefiles, and will
provide threads from an operating system or scripted process python plugin that
they write. This removes the error handling from DoLoadCore -- I can't
remember this catching problems with corrupt corefiles in real world use.
I haven't cooked up a test for it at this point; it would be possible to run a
user process, `process save-core` it, write a utility program that rewrites the
corefiles to remove the LC_THREAD load commands, loads it into lldb, and
confirms that memory can still be examined. But given the simplicity of the
change, I don't feel super motivated to write all that. I'm open to it though,
if other people feel it would be a good addition to our test coverage.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D142662
Files:
lldb/source/Plugins/Process/mach-core/ProcessMachCore.cpp
Index: lldb/source/Plugins/Process/mach-core/ProcessMachCore.cpp
===================================================================
--- lldb/source/Plugins/Process/mach-core/ProcessMachCore.cpp
+++ lldb/source/Plugins/Process/mach-core/ProcessMachCore.cpp
@@ -483,13 +483,6 @@
return error;
}
- if (core_objfile->GetNumThreadContexts() == 0) {
- error.SetErrorString("core file doesn't contain any LC_THREAD load "
- "commands, or the LC_THREAD architecture is not "
- "supported in this lldb");
- return error;
- }
-
SetCanJIT(false);
// The corefile's architecture is our best starting point.
Index: lldb/source/Plugins/Process/mach-core/ProcessMachCore.cpp
===================================================================
--- lldb/source/Plugins/Process/mach-core/ProcessMachCore.cpp
+++ lldb/source/Plugins/Process/mach-core/ProcessMachCore.cpp
@@ -483,13 +483,6 @@
return error;
}
- if (core_objfile->GetNumThreadContexts() == 0) {
- error.SetErrorString("core file doesn't contain any LC_THREAD load "
- "commands, or the LC_THREAD architecture is not "
- "supported in this lldb");
- return error;
- }
-
SetCanJIT(false);
// The corefile's architecture is our best starting point.
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits