diff options
Diffstat (limited to 'lldb/source/Target')
| -rw-r--r-- | lldb/source/Target/StackFrame.cpp | 91 | ||||
| -rw-r--r-- | lldb/source/Target/StackFrameList.cpp | 8 | ||||
| -rw-r--r-- | lldb/source/Target/Thread.cpp | 14 |
3 files changed, 53 insertions, 60 deletions
diff --git a/lldb/source/Target/StackFrame.cpp b/lldb/source/Target/StackFrame.cpp index 780a2636026..d9c9eb252f9 100644 --- a/lldb/source/Target/StackFrame.cpp +++ b/lldb/source/Target/StackFrame.cpp @@ -1296,10 +1296,9 @@ StackFrame::HasCachedData () const bool StackFrame::GetStatus (Stream& strm, bool show_frame_info, - bool show_source, - uint32_t source_lines_before, - uint32_t source_lines_after) + bool show_source) { + if (show_frame_info) { strm.Indent(); @@ -1312,56 +1311,62 @@ StackFrame::GetStatus (Stream& strm, bool have_source = false; DebuggerInstanceSettings::StopDisassemblyType disasm_display = DebuggerInstanceSettings::eStopDisassemblyTypeNever; Target *target = exe_ctx.GetTargetPtr(); - if (target && (source_lines_before || source_lines_after)) + if (target) { - GetSymbolContext(eSymbolContextCompUnit | eSymbolContextLineEntry); + Debugger &debugger = target->GetDebugger(); + const uint32_t source_lines_before = debugger.GetStopSourceLineCount(true); + const uint32_t source_lines_after = debugger.GetStopSourceLineCount(false); + disasm_display = debugger.GetStopDisassemblyDisplay (); - if (m_sc.comp_unit && m_sc.line_entry.IsValid()) + if (source_lines_before > 0 || source_lines_after > 0) { - if (target->GetSourceManager().DisplaySourceLinesWithLineNumbers (m_sc.line_entry.file, - m_sc.line_entry.line, - source_lines_before, - source_lines_after, - "->", - &strm)) + GetSymbolContext(eSymbolContextCompUnit | eSymbolContextLineEntry); + + if (m_sc.comp_unit && m_sc.line_entry.IsValid()) { - have_source = true; + if (target->GetSourceManager().DisplaySourceLinesWithLineNumbers (m_sc.line_entry.file, + m_sc.line_entry.line, + source_lines_before, + source_lines_after, + "->", + &strm)) + { + have_source = true; + } } } - disasm_display = target->GetDebugger().GetStopDisassemblyDisplay (); - } - - switch (disasm_display) - { - case DebuggerInstanceSettings::eStopDisassemblyTypeNever: - break; - - case DebuggerInstanceSettings::eStopDisassemblyTypeNoSource: - if (have_source) - break; - // Fall through to next case - case DebuggerInstanceSettings::eStopDisassemblyTypeAlways: - if (target) + switch (disasm_display) { - const uint32_t disasm_lines = target->GetDebugger().GetDisassemblyLineCount(); - if (disasm_lines > 0) + case DebuggerInstanceSettings::eStopDisassemblyTypeNever: + break; + + case DebuggerInstanceSettings::eStopDisassemblyTypeNoSource: + if (have_source) + break; + // Fall through to next case + case DebuggerInstanceSettings::eStopDisassemblyTypeAlways: + if (target) { - const ArchSpec &target_arch = target->GetArchitecture(); - AddressRange pc_range; - pc_range.GetBaseAddress() = GetFrameCodeAddress(); - pc_range.SetByteSize(disasm_lines * target_arch.GetMaximumOpcodeByteSize()); - Disassembler::Disassemble (target->GetDebugger(), - target_arch, - NULL, - exe_ctx, - pc_range, - disasm_lines, - 0, - Disassembler::eOptionMarkPCAddress, - strm); + const uint32_t disasm_lines = debugger.GetDisassemblyLineCount(); + if (disasm_lines > 0) + { + const ArchSpec &target_arch = target->GetArchitecture(); + AddressRange pc_range; + pc_range.GetBaseAddress() = GetFrameCodeAddress(); + pc_range.SetByteSize(disasm_lines * target_arch.GetMaximumOpcodeByteSize()); + Disassembler::Disassemble (target->GetDebugger(), + target_arch, + NULL, + exe_ctx, + pc_range, + disasm_lines, + 0, + Disassembler::eOptionMarkPCAddress, + strm); + } } + break; } - break; } } return true; diff --git a/lldb/source/Target/StackFrameList.cpp b/lldb/source/Target/StackFrameList.cpp index 84fce4a6345..6fd410dd676 100644 --- a/lldb/source/Target/StackFrameList.cpp +++ b/lldb/source/Target/StackFrameList.cpp @@ -587,9 +587,7 @@ StackFrameList::GetStatus (Stream& strm, uint32_t first_frame, uint32_t num_frames, bool show_frame_info, - uint32_t num_frames_with_source, - uint32_t source_lines_before, - uint32_t source_lines_after) + uint32_t num_frames_with_source) { size_t num_frames_displayed = 0; @@ -614,9 +612,7 @@ StackFrameList::GetStatus (Stream& strm, if (!frame_sp->GetStatus (strm, show_frame_info, - num_frames_with_source > first_frame - frame_idx, - source_lines_before, - source_lines_after)) + num_frames_with_source > (first_frame - frame_idx))) break; ++num_frames_displayed; } diff --git a/lldb/source/Target/Thread.cpp b/lldb/source/Target/Thread.cpp index 4513577c9b5..5eeaca83552 100644 --- a/lldb/source/Target/Thread.cpp +++ b/lldb/source/Target/Thread.cpp @@ -1321,16 +1321,12 @@ Thread::GetStatus (Stream &strm, uint32_t start_frame, uint32_t num_frames, uint strm.IndentMore(); const bool show_frame_info = true; - const uint32_t source_lines_before = 3; - const uint32_t source_lines_after = 3; strm.IndentMore (); num_frames_shown = GetStackFrameList ()->GetStatus (strm, start_frame, num_frames, show_frame_info, - num_frames_with_source, - source_lines_before, - source_lines_after); + num_frames_with_source); strm.IndentLess(); strm.IndentLess(); } @@ -1342,17 +1338,13 @@ Thread::GetStackFrameStatus (Stream& strm, uint32_t first_frame, uint32_t num_frames, bool show_frame_info, - uint32_t num_frames_with_source, - uint32_t source_lines_before, - uint32_t source_lines_after) + uint32_t num_frames_with_source) { return GetStackFrameList()->GetStatus (strm, first_frame, num_frames, show_frame_info, - num_frames_with_source, - source_lines_before, - source_lines_after); + num_frames_with_source); } bool |

