]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blobdiff - tools/perf/util/annotate.c
perf symbols: Make sym->end be the first address after the symbol range
[mirror_ubuntu-artful-kernel.git] / tools / perf / util / annotate.c
index 36437527dbb347301c7d44f6322f72b4568a0d2a..7dabde14ea54ace4c0ca3e6e54c619640035f845 100644 (file)
@@ -478,7 +478,7 @@ static int __symbol__inc_addr_samples(struct symbol *sym, struct map *map,
 
        pr_debug3("%s: addr=%#" PRIx64 "\n", __func__, map->unmap_ip(map, addr));
 
-       if (addr < sym->start || addr > sym->end)
+       if (addr < sym->start || addr >= sym->end)
                return -ERANGE;
 
        offset = addr - sym->start;
@@ -836,7 +836,7 @@ static int symbol__parse_objdump_line(struct symbol *sym, struct map *map,
                    end = map__rip_2objdump(map, sym->end);
 
                offset = line_ip - start;
-               if ((u64)line_ip < start || (u64)line_ip > end)
+               if ((u64)line_ip < start || (u64)line_ip >= end)
                        offset = -1;
                else
                        parsed_line = tmp2 + 1;
@@ -966,7 +966,7 @@ fallback:
                kce.kcore_filename = symfs_filename;
                kce.addr = map__rip_2objdump(map, sym->start);
                kce.offs = sym->start;
-               kce.len = sym->end + 1 - sym->start;
+               kce.len = sym->end - sym->start;
                if (!kcore_extract__create(&kce)) {
                        delete_extract = true;
                        strlcpy(symfs_filename, kce.extract_filename,
@@ -987,7 +987,7 @@ fallback:
                 disassembler_style ? "-M " : "",
                 disassembler_style ? disassembler_style : "",
                 map__rip_2objdump(map, sym->start),
-                map__rip_2objdump(map, sym->end+1),
+                map__rip_2objdump(map, sym->end),
                 symbol_conf.annotate_asm_raw ? "" : "--no-show-raw",
                 symbol_conf.annotate_src ? "-S" : "",
                 symfs_filename, filename);