On Wed, Feb 27, 2019 at 09:06:40PM -0800, Song Liu wrote:

SNIP

> +
> +     disassemble_init_for_target(&info);
> +
> +#ifdef DISASM_FOUR_ARGS_SIGNATURE
> +     disassemble = disassembler(info.arch,
> +                                bfd_big_endian(bfdf),
> +                                info.mach,
> +                                bfdf);
> +#else
> +     disassemble = disassembler(bfdf);
> +#endif
> +     assert(disassemble);
> +
> +     fflush(s);

what's the reason for those fflush calls?

thanks,
jirka

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

SNIP

Reply via email to