diff options
| author | Greg Clayton <gclayton@apple.com> | 2012-03-20 02:15:45 +0000 | 
|---|---|---|
| committer | Greg Clayton <gclayton@apple.com> | 2012-03-20 02:15:45 +0000 | 
| commit | 5400bad64d9fabcdd31256be703602b077bc06db (patch) | |
| tree | 6bdfe5c44c9207cf9064ca63b1c923d5b5e565cb | |
| parent | 9ff1ba2546efc87d469ecdcf17f4bd4a4dbbb2cc (diff) | |
| download | bcm5719-llvm-5400bad64d9fabcdd31256be703602b077bc06db.tar.gz bcm5719-llvm-5400bad64d9fabcdd31256be703602b077bc06db.zip  | |
<rdar://problem/11078937>
LLDB can match incorrect line table entries when an address is between two valid line entries (in the gap between the valid debug info), now it doesn't!
llvm-svn: 153077
| -rw-r--r-- | lldb/source/Symbol/LineTable.cpp | 4 | 
1 files changed, 3 insertions, 1 deletions
diff --git a/lldb/source/Symbol/LineTable.cpp b/lldb/source/Symbol/LineTable.cpp index db14eb23571..539645e81b7 100644 --- a/lldb/source/Symbol/LineTable.cpp +++ b/lldb/source/Symbol/LineTable.cpp @@ -227,7 +227,9 @@ LineTable::FindLineEntryByAddress (const Address &so_addr, LineEntry& line_entry              } -            if (pos != end_pos) +            // Make sure we have a valid match and that the match isn't a terminating +            // entry for a previous line... +            if (pos != end_pos && pos->is_terminal_entry == false)              {                  uint32_t match_idx = std::distance (begin_pos, pos);                  success = ConvertEntryAtIndexToLineEntry(match_idx, line_entry);  | 

