diff options
author | emaste <emaste@FreeBSD.org> | 2013-12-03 22:13:33 +0000 |
---|---|---|
committer | emaste <emaste@FreeBSD.org> | 2013-12-03 22:13:33 +0000 |
commit | f087960a1097db2a1ef14a88963f8785df239aaa (patch) | |
tree | 44fecbbf159dd7e549aa3a3fb2ca48e10dc3c51e /source | |
parent | 0f31a1ef7ecf609d469ee5b34b3f0cb24ae3492d (diff) | |
download | FreeBSD-src-f087960a1097db2a1ef14a88963f8785df239aaa.zip FreeBSD-src-f087960a1097db2a1ef14a88963f8785df239aaa.tar.gz |
Import lldb as of SVN r196322 (git 49c127ae)
(A number of files not required for the FreeBSD build have been removed.)
Sponsored by: DARPA, AFRL
Diffstat (limited to 'source')
-rw-r--r-- | source/Breakpoint/BreakpointLocationList.cpp | 13 | ||||
-rw-r--r-- | source/Symbol/UnwindPlan.cpp | 28 |
2 files changed, 31 insertions, 10 deletions
diff --git a/source/Breakpoint/BreakpointLocationList.cpp b/source/Breakpoint/BreakpointLocationList.cpp index 0c4c54d..18147de 100644 --- a/source/Breakpoint/BreakpointLocationList.cpp +++ b/source/Breakpoint/BreakpointLocationList.cpp @@ -86,16 +86,13 @@ Compare (BreakpointLocationSP lhs, lldb::break_id_t val) BreakpointLocationSP BreakpointLocationList::FindByID (lldb::break_id_t break_id) const { - BreakpointLocationSP bp_loc_sp; Mutex::Locker locker (m_mutex); - - collection::const_iterator begin = m_locations.begin(), end = m_locations.end(); - collection::const_iterator result; - result = std::lower_bound(begin, end, break_id, Compare); - if (result == end) - return bp_loc_sp; + collection::const_iterator end = m_locations.end(); + collection::const_iterator pos = std::lower_bound(m_locations.begin(), end, break_id, Compare); + if (pos != end && (*pos)->GetID() == break_id) + return *(pos); else - return *(result); + return BreakpointLocationSP(); } size_t diff --git a/source/Symbol/UnwindPlan.cpp b/source/Symbol/UnwindPlan.cpp index 19edea4..7b361e7 100644 --- a/source/Symbol/UnwindPlan.cpp +++ b/source/Symbol/UnwindPlan.cpp @@ -379,7 +379,19 @@ UnwindPlan::PlanValidAtAddress (Address addr) { Log *log(GetLogIfAllCategoriesSet (LIBLLDB_LOG_UNWIND)); if (log) - log->Printf ("Testing if UnwindPlan is valid at pc 0x%" PRIx64 ": No unwind rows - is invalid."); + { + StreamString s; + if (addr.Dump (&s, NULL, Address::DumpStyleSectionNameOffset)) + { + log->Printf ("UnwindPlan is invalid -- no unwind rows for UnwindPlan '%s' at address %s", + m_source_name.GetCString(), s.GetData()); + } + else + { + log->Printf ("UnwindPlan is invalid -- no unwind rows for UnwindPlan '%s'", + m_source_name.GetCString()); + } + } return false; } @@ -389,7 +401,19 @@ UnwindPlan::PlanValidAtAddress (Address addr) { Log *log(GetLogIfAllCategoriesSet (LIBLLDB_LOG_UNWIND)); if (log) - log->Printf ("Testing if UnwindPlan is valid at pc 0x%" PRIx64 ": No CFA register - is invalid."); + { + StreamString s; + if (addr.Dump (&s, NULL, Address::DumpStyleSectionNameOffset)) + { + log->Printf ("UnwindPlan is invalid -- no CFA register defined in row 0 for UnwindPlan '%s' at address %s", + m_source_name.GetCString(), s.GetData()); + } + else + { + log->Printf ("UnwindPlan is invalid -- no CFA register defined in row 0 for UnwindPlan '%s'", + m_source_name.GetCString()); + } + } return false; } |