Subject: Re: [PATCH v5 perf,bpf 12/15] perf, bpf: enable annotation of bpf program

From: Jiri Olsa <[email-masked]>
Date: Mon, 4 Mar 2019 21:37:13 +0100

On Mon, Mar 04, 2019 at 07:45:00PM +0000, Song Liu wrote:
> 
> 
> > On Mar 4, 2019, at 5:53 AM, Jiri Olsa <[email-masked]> wrote:
> > 
> > On Wed, Feb 27, 2019 at 09:06:40PM -0800, Song Liu wrote:
> > 
> > SNIP
> > 
> >> +	fflush(s);
> >> +	do {
> >> +		const struct bpf_line_info *linfo = NULL;
> >> +		struct disasm_line *dl;
> >> +		size_t prev_buf_size;
> >> +		const char *srcline;
> >> +		u64 addr;
> >> +
> >> +		addr = pc + ((u64 *)(info_linear->info.jited_ksyms))[sub_id];
> >> +		count = disassemble(pc, &info);
> >> +
> >> +		if (prog_linfo)
> >> +			linfo = bpf_prog_linfo__lfind_addr_func(prog_linfo,
> >> +								addr, sub_id,
> >> +								nr_skip);
> >> +
> >> +		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;
> > 
> > why's the offset not needed in here?
> 
> This is the source code line. Based on my understanding of annotation
> code, we put -1 for source code line. Did I misunderstand something?

please double check, IIRC annotation_line__print will print
just more info if offset is present, together with the source,
but I haven't checked that code for some time, so I might be wrong

jirka