aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Core/AddressResolverFileLine.cpp
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2021-07-29 20:15:26 +0000
committerDimitry Andric <dim@FreeBSD.org>2021-07-29 20:15:26 +0000
commit344a3780b2e33f6ca763666c380202b18aab72a3 (patch)
treef0b203ee6eb71d7fdd792373e3c81eb18d6934dd /lldb/source/Core/AddressResolverFileLine.cpp
parentb60736ec1405bb0a8dd40989f67ef4c93da068ab (diff)
Diffstat (limited to 'lldb/source/Core/AddressResolverFileLine.cpp')
-rw-r--r--lldb/source/Core/AddressResolverFileLine.cpp33
1 files changed, 15 insertions, 18 deletions
diff --git a/lldb/source/Core/AddressResolverFileLine.cpp b/lldb/source/Core/AddressResolverFileLine.cpp
index b0d8dcdde2de..fb61a6100b0e 100644
--- a/lldb/source/Core/AddressResolverFileLine.cpp
+++ b/lldb/source/Core/AddressResolverFileLine.cpp
@@ -21,20 +21,18 @@
#include "lldb/lldb-enumerations.h"
#include "lldb/lldb-types.h"
-#include <inttypes.h>
+#include <cinttypes>
#include <vector>
using namespace lldb;
using namespace lldb_private;
// AddressResolverFileLine:
-AddressResolverFileLine::AddressResolverFileLine(const FileSpec &file_spec,
- uint32_t line_no,
- bool check_inlines)
- : AddressResolver(), m_file_spec(file_spec), m_line_number(line_no),
- m_inlines(check_inlines) {}
+AddressResolverFileLine::AddressResolverFileLine(
+ SourceLocationSpec location_spec)
+ : AddressResolver(), m_src_location_spec(location_spec) {}
-AddressResolverFileLine::~AddressResolverFileLine() {}
+AddressResolverFileLine::~AddressResolverFileLine() = default;
Searcher::CallbackReturn
AddressResolverFileLine::SearchCallback(SearchFilter &filter,
@@ -44,8 +42,9 @@ AddressResolverFileLine::SearchCallback(SearchFilter &filter,
Log *log(lldb_private::GetLogIfAllCategoriesSet(LIBLLDB_LOG_BREAKPOINTS));
- cu->ResolveSymbolContext(m_file_spec, m_line_number, m_inlines, false,
- eSymbolContextEverything, sc_list);
+ // TODO: Handle SourceLocationSpec column information
+ cu->ResolveSymbolContext(m_src_location_spec, eSymbolContextEverything,
+ sc_list);
uint32_t sc_list_size = sc_list.GetSize();
for (uint32_t i = 0; i < sc_list_size; i++) {
SymbolContext sc;
@@ -55,18 +54,14 @@ AddressResolverFileLine::SearchCallback(SearchFilter &filter,
if (line_start.IsValid()) {
AddressRange new_range(line_start, byte_size);
m_address_ranges.push_back(new_range);
- if (log) {
- StreamString s;
- // new_bp_loc->GetDescription (&s, lldb::eDescriptionLevelVerbose);
- // LLDB_LOGF(log, "Added address: %s\n", s.GetData());
- }
} else {
LLDB_LOGF(log,
"error: Unable to resolve address at file address 0x%" PRIx64
" for %s:%d\n",
line_start.GetFileAddress(),
- m_file_spec.GetFilename().AsCString("<Unknown>"),
- m_line_number);
+ m_src_location_spec.GetFileSpec().GetFilename().AsCString(
+ "<Unknown>"),
+ m_src_location_spec.GetLine().getValueOr(0));
}
}
}
@@ -78,6 +73,8 @@ lldb::SearchDepth AddressResolverFileLine::GetDepth() {
}
void AddressResolverFileLine::GetDescription(Stream *s) {
- s->Printf("File and line address - file: \"%s\" line: %u",
- m_file_spec.GetFilename().AsCString("<Unknown>"), m_line_number);
+ s->Printf(
+ "File and line address - file: \"%s\" line: %u",
+ m_src_location_spec.GetFileSpec().GetFilename().AsCString("<Unknown>"),
+ m_src_location_spec.GetLine().getValueOr(0));
}