diff options
Diffstat (limited to 'lldb/source/Core/Disassembler.cpp')
-rw-r--r-- | lldb/source/Core/Disassembler.cpp | 53 |
1 files changed, 29 insertions, 24 deletions
diff --git a/lldb/source/Core/Disassembler.cpp b/lldb/source/Core/Disassembler.cpp index e6fe1b018a5..64a4c2c762b 100644 --- a/lldb/source/Core/Disassembler.cpp +++ b/lldb/source/Core/Disassembler.cpp @@ -99,39 +99,44 @@ Disassembler::Disassemble Stream &strm ) { - if (exe_ctx.target == NULL && name) - return false; - SymbolContextList sc_list; - - if (module) - { - if (!module->FindFunctions (name, - eFunctionNameTypeBase | - eFunctionNameTypeFull | - eFunctionNameTypeMethod | - eFunctionNameTypeSelector, - true, - sc_list)) - return false; - } - else + if (name) { - if (exe_ctx.target->GetImages().FindFunctions (name, + const bool include_symbols = true; + if (module) + { + module->FindFunctions (name, + eFunctionNameTypeBase | + eFunctionNameTypeFull | + eFunctionNameTypeMethod | + eFunctionNameTypeSelector, + include_symbols, + true, + sc_list); + } + else if (exe_ctx.target) + { + exe_ctx.target->GetImages().FindFunctions (name, eFunctionNameTypeBase | eFunctionNameTypeFull | eFunctionNameTypeMethod | eFunctionNameTypeSelector, + include_symbols, false, - sc_list)) - { - return Disassemble (debugger, arch, exe_ctx, sc_list, num_mixed_context_lines, show_bytes, strm); - } - else if (exe_ctx.target->GetImages().FindSymbolsWithNameAndType(name, eSymbolTypeCode, sc_list)) - { - return Disassemble (debugger, arch, exe_ctx, sc_list, num_mixed_context_lines, show_bytes, strm); + sc_list); } } + + if (sc_list.GetSize ()) + { + return Disassemble (debugger, + arch, + exe_ctx, + sc_list, + num_mixed_context_lines, + show_bytes, + strm); + } return false; } |