|
@@ -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);
|