summaryrefslogtreecommitdiffstats
path: root/lldb/source/Core
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Core')
-rw-r--r--lldb/source/Core/Address.cpp14
-rw-r--r--lldb/source/Core/SourceManager.cpp19
2 files changed, 18 insertions, 15 deletions
diff --git a/lldb/source/Core/Address.cpp b/lldb/source/Core/Address.cpp
index 89131caddea..2ea3bb17312 100644
--- a/lldb/source/Core/Address.cpp
+++ b/lldb/source/Core/Address.cpp
@@ -729,7 +729,7 @@ Address::Dump (Stream *s, ExecutionContextScope *exe_scope, DumpStyle style, Dum
}
uint32_t
-Address::CalculateSymbolContext (SymbolContext *sc, uint32_t resolve_scope)
+Address::CalculateSymbolContext (SymbolContext *sc, uint32_t resolve_scope) const
{
sc->Clear();
// Absolute addresses don't have enough information to reconstruct even their target.
@@ -747,7 +747,7 @@ Address::CalculateSymbolContext (SymbolContext *sc, uint32_t resolve_scope)
}
Module *
-Address::CalculateSymbolContextModule ()
+Address::CalculateSymbolContextModule () const
{
if (m_section)
return m_section->GetModule();
@@ -755,7 +755,7 @@ Address::CalculateSymbolContextModule ()
}
CompileUnit *
-Address::CalculateSymbolContextCompileUnit ()
+Address::CalculateSymbolContextCompileUnit () const
{
if (m_section)
{
@@ -771,7 +771,7 @@ Address::CalculateSymbolContextCompileUnit ()
}
Function *
-Address::CalculateSymbolContextFunction ()
+Address::CalculateSymbolContextFunction () const
{
if (m_section)
{
@@ -787,7 +787,7 @@ Address::CalculateSymbolContextFunction ()
}
Block *
-Address::CalculateSymbolContextBlock ()
+Address::CalculateSymbolContextBlock () const
{
if (m_section)
{
@@ -803,7 +803,7 @@ Address::CalculateSymbolContextBlock ()
}
Symbol *
-Address::CalculateSymbolContextSymbol ()
+Address::CalculateSymbolContextSymbol () const
{
if (m_section)
{
@@ -819,7 +819,7 @@ Address::CalculateSymbolContextSymbol ()
}
bool
-Address::CalculateSymbolContextLineEntry (LineEntry &line_entry)
+Address::CalculateSymbolContextLineEntry (LineEntry &line_entry) const
{
if (m_section)
{
diff --git a/lldb/source/Core/SourceManager.cpp b/lldb/source/Core/SourceManager.cpp
index 482ccbbcdb0..3e4a78ac68e 100644
--- a/lldb/source/Core/SourceManager.cpp
+++ b/lldb/source/Core/SourceManager.cpp
@@ -250,19 +250,22 @@ SourceManager::GetDefaultFileAndLine (FileSpec &file_spec, uint32_t &line)
{
SymbolContext sc;
sc_list.GetContextAtIndex(idx, sc);
- if (sc.line_entry.file)
+ if (sc.function)
{
- SetDefaultFileAndLine(sc.line_entry.file, sc.line_entry.line);
- break;
+ lldb_private::LineEntry line_entry;
+ if (sc.function->GetAddressRange().GetBaseAddress().CalculateSymbolContextLineEntry (line_entry))
+ {
+ SetDefaultFileAndLine (line_entry.file,
+ line_entry.line);
+ file_spec = m_last_file_sp->GetFileSpec();
+ line = m_last_file_line;
+ return true;
+ }
}
}
- return GetDefaultFileAndLine (file_spec, line);
}
- else
- return false;
}
- else
- return false;
+ return false;
}
void
OpenPOWER on IntegriCloud