> On Mar 11, 2019, at 10:56 AM, Jiri Olsa <jolsa@xxxxxxxxxx> wrote: > > On Thu, Mar 07, 2019 at 09:58:07AM -0800, Song Liu wrote: > > SNIP > >> + if (linfo && btf) { >> + srcline = btf__name_by_offset(btf, linfo->line_off); >> + nr_skip++; >> + } else >> + srcline = NULL; >> + >> + fprintf(s, "\n"); >> + prev_buf_size = buf_size; >> + fflush(s); >> + >> + if (!opts->hide_src_code && srcline) { >> + args->offset = -1; >> + args->line = strdup(srcline); >> + args->line_nr = 0; >> + args->ms.sym = sym; >> + dl = disasm_line__new(args); >> + if (dl) { >> + annotation_line__add(&dl->al, >> + ¬es->src->source); >> + } >> + } > > I still miss answer for why is the line added twice for > !opts->hide_src_code && srcline ? code up and down > > jirka The line above (under "!hide_src_code && srcline") is the src code line; while the one below is the disassemble output. We only show the source code when "!hide_src_code && srcline" is true. Thanks, Song >> + >> + args->offset = pc; >> + args->line = buf + prev_buf_size; >> + args->line_nr = 0; >> + args->ms.sym = sym; >> + dl = disasm_line__new(args); >> + if (dl) >> + annotation_line__add(&dl->al, ¬es->src->source); >> + >> + pc += count; >> + } while (count > 0 && pc < len); > > SNIP