Index: lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp =================================================================== --- lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp +++ lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp @@ -179,7 +179,7 @@ return false; --SymbolIterator; if (SymbolIterator->first.Size != 0 && - SymbolIterator->first.Addr + SymbolIterator->first.Size <= Address) + SymbolIterator->first.Addr + SymbolIterator->first.Size < Address) return false; Name = SymbolIterator->second.str(); Addr = SymbolIterator->first.Addr; Index: test/DebugInfo/llvm-symbolizer.test =================================================================== --- test/DebugInfo/llvm-symbolizer.test +++ test/DebugInfo/llvm-symbolizer.test @@ -3,6 +3,7 @@ RUN: echo "%p/Inputs/dwarfdump-test.elf-x86-64 0x400436" >> %t.input RUN: echo "%p/Inputs/dwarfdump-test.elf-x86-64 0x400528" >> %t.input RUN: echo "%p/Inputs/dwarfdump-test.elf-x86-64 0x400586" >> %t.input +RUN: echo "%p/Inputs/dwarfdump-test.elf-x86-64 0x400564" >> %t.input RUN: echo "%p/Inputs/dwarfdump-test2.elf-x86-64 0x4004e8" >> %t.input RUN: echo "%p/Inputs/dwarfdump-test2.elf-x86-64 0x4004f4" >> %t.input RUN: echo "%p/Inputs/dwarfdump-test4.elf-x86-64 0x62c" >> %t.input @@ -41,6 +42,8 @@ CHECK: DummyClass CHECK-NEXT: /tmp/dbginfo{{[/\\]}}dwarfdump-test.cc:4 +CHECK: main + CHECK: a CHECK-NEXT: /tmp/dbginfo{{[/\\]}}dwarfdump-test2-helper.cc:2