[Lldb-commits] [lldb] ad45114 - Add 'target dump section-load-list' for lldb debugging
Jason Molenda via lldb-commits
lldb-commits at lists.llvm.org
Thu Jun 29 17:03:00 PDT 2023
Author: Jason Molenda
Date: 2023-06-29T17:02:54-07:00
New Revision: ad451146e8f59de76e393094d3aafc97a854c40b
URL: https://github.com/llvm/llvm-project/commit/ad451146e8f59de76e393094d3aafc97a854c40b
DIFF: https://github.com/llvm/llvm-project/commit/ad451146e8f59de76e393094d3aafc97a854c40b.diff
LOG: Add 'target dump section-load-list' for lldb debugging
A command to dump the Target's SectionLoadList, to debug
possible issues with the table.
Differential Revision: https://reviews.llvm.org/D154169
Added:
Modified:
lldb/source/Commands/CommandObjectTarget.cpp
Removed:
################################################################################
diff --git a/lldb/source/Commands/CommandObjectTarget.cpp b/lldb/source/Commands/CommandObjectTarget.cpp
index 81a2fe4c9f2baa..22045948f88ba9 100644
--- a/lldb/source/Commands/CommandObjectTarget.cpp
+++ b/lldb/source/Commands/CommandObjectTarget.cpp
@@ -5123,6 +5123,29 @@ class CommandObjectTargetDumpTypesystem : public CommandObjectParsed {
}
};
+#pragma mark CommandObjectTargetDumpSectionLoadList
+
+/// Dumps the SectionLoadList of the selected Target.
+class CommandObjectTargetDumpSectionLoadList : public CommandObjectParsed {
+public:
+ CommandObjectTargetDumpSectionLoadList(CommandInterpreter &interpreter)
+ : CommandObjectParsed(
+ interpreter, "target dump section-load-list",
+ "Dump the state of the target's internal section load list. "
+ "Intended to be used for debugging LLDB itself.",
+ nullptr, eCommandRequiresTarget) {}
+
+ ~CommandObjectTargetDumpSectionLoadList() override = default;
+
+protected:
+ bool DoExecute(Args &command, CommandReturnObject &result) override {
+ Target &target = GetSelectedTarget();
+ target.GetSectionLoadList().Dump(result.GetOutputStream(), &target);
+ result.SetStatus(eReturnStatusSuccessFinishResult);
+ return result.Succeeded();
+ }
+};
+
#pragma mark CommandObjectTargetDump
/// Multi-word command for 'target dump'.
@@ -5133,10 +5156,13 @@ class CommandObjectTargetDump : public CommandObjectMultiword {
: CommandObjectMultiword(
interpreter, "target dump",
"Commands for dumping information about the target.",
- "target dump [typesystem]") {
+ "target dump [typesystem|section-load-list]") {
LoadSubCommand(
"typesystem",
CommandObjectSP(new CommandObjectTargetDumpTypesystem(interpreter)));
+ LoadSubCommand("section-load-list",
+ CommandObjectSP(new CommandObjectTargetDumpSectionLoadList(
+ interpreter)));
}
~CommandObjectTargetDump() override = default;
More information about the lldb-commits
mailing list