aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Commands/CommandObjectTarget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Commands/CommandObjectTarget.cpp')
-rw-r--r--lldb/source/Commands/CommandObjectTarget.cpp19
1 files changed, 15 insertions, 4 deletions
diff --git a/lldb/source/Commands/CommandObjectTarget.cpp b/lldb/source/Commands/CommandObjectTarget.cpp
index a63caab..64e7e69 100644
--- a/lldb/source/Commands/CommandObjectTarget.cpp
+++ b/lldb/source/Commands/CommandObjectTarget.cpp
@@ -1420,12 +1420,13 @@ static size_t DumpModuleObjfileHeaders(Stream &strm, ModuleList &module_list) {
}
static void DumpModuleSymtab(CommandInterpreter &interpreter, Stream &strm,
- Module *module, SortOrder sort_order) {
+ Module *module, SortOrder sort_order,
+ Mangled::NamePreference name_preference) {
if (!module)
return;
if (Symtab *symtab = module->GetSymtab())
symtab->Dump(&strm, interpreter.GetExecutionContext().GetTargetPtr(),
- sort_order);
+ sort_order, name_preference);
}
static void DumpModuleSections(CommandInterpreter &interpreter, Stream &strm,
@@ -1970,6 +1971,11 @@ public:
const int short_option = m_getopt_table[option_idx].val;
switch (short_option) {
+ case 'm':
+ m_prefer_mangled.SetCurrentValue(true);
+ m_prefer_mangled.SetOptionWasSet();
+ break;
+
case 's':
m_sort_order = (SortOrder)OptionArgParser::ToOptionEnum(
option_arg, GetDefinitions()[option_idx].enum_values,
@@ -1984,6 +1990,7 @@ public:
void OptionParsingStarting(ExecutionContext *execution_context) override {
m_sort_order = eSortOrderNone;
+ m_prefer_mangled.Clear();
}
llvm::ArrayRef<OptionDefinition> GetDefinitions() override {
@@ -1991,12 +1998,16 @@ public:
}
SortOrder m_sort_order;
+ OptionValueBoolean m_prefer_mangled = {false, false};
};
protected:
bool DoExecute(Args &command, CommandReturnObject &result) override {
Target *target = &GetSelectedTarget();
uint32_t num_dumped = 0;
+ Mangled::NamePreference name_preference =
+ (m_options.m_prefer_mangled ? Mangled::ePreferMangled
+ : Mangled::ePreferDemangled);
uint32_t addr_byte_size = target->GetArchitecture().GetAddressByteSize();
result.GetOutputStream().SetAddressByteSize(addr_byte_size);
@@ -2022,7 +2033,7 @@ protected:
DumpModuleSymtab(
m_interpreter, result.GetOutputStream(),
target->GetImages().GetModulePointerAtIndexUnlocked(image_idx),
- m_options.m_sort_order);
+ m_options.m_sort_order, name_preference);
}
} else {
result.AppendError("the target has no associated executable images");
@@ -2050,7 +2061,7 @@ protected:
break;
num_dumped++;
DumpModuleSymtab(m_interpreter, result.GetOutputStream(), module,
- m_options.m_sort_order);
+ m_options.m_sort_order, name_preference);
}
}
} else