On Fri, Feb 15, 2019 at 01:53:53PM -0800, Song Liu wrote:

SNIP

> diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c
> index 70de8f6b3aee..078017d31ca9 100644
> --- a/tools/perf/util/annotate.c
> +++ b/tools/perf/util/annotate.c
> @@ -22,6 +22,7 @@
>  #include "annotate.h"
>  #include "evsel.h"
>  #include "evlist.h"
> +#include "bpf-event.h"
>  #include "block-range.h"
>  #include "string2.h"
>  #include "arch/common.h"
> @@ -29,6 +30,9 @@
>  #include <pthread.h>
>  #include <linux/bitops.h>
>  #include <linux/kernel.h>
> +#include <bfd.h>
> +#include <dis-asm.h>
> +#include <bpf/libbpf.h>
>  
>  /* FIXME: For the HE_COLORSET */
>  #include "ui/browser.h"
> @@ -1672,6 +1676,147 @@ static int dso__disassemble_filename(struct dso *dso, 
> char *filename, size_t fil
>       return 0;
>  }
>  
> +static void get_exec_path(char *tpath, size_t size)
> +{
> +     const char *path = "/proc/self/exe";
> +     ssize_t len;
> +
> +     len = readlink(path, tpath, size - 1);
> +     assert(len > 0);
> +     tpath[len] = 0;
> +}

this is also used in write_cmdline, could you please
move it under util.c and use it in write_cmdline as well?

thanks,
jirka

> +
> +static int symbol__disassemble_bpf(struct symbol *sym,
> +                                struct annotate_args *args)
> +{
> +     struct annotation *notes = symbol__annotation(sym);
> +     struct annotation_options *opts = args->options;
> +     struct bpf_prog_info_linear *info_linear;
> +     struct bpf_prog_linfo *prog_linfo = NULL;
> +     struct bpf_prog_info_node *info_node;
> +     int len = sym->end - sym->start;
> +     disassembler_ftype disassemble;
> +     struct map *map = args->ms.map;
> +     struct disassemble_info info;
> +     struct dso *dso = map->dso;
> +     int pc = 0, count, sub_id;
> +     struct btf *btf = NULL;
> +     char tpath[PATH_MAX];
> +     size_t buf_size;
> +     int nr_skip = 0;
> +     __u64 arrays;
> +     char *buf;
> +     bfd *bfdf;
> +     FILE *s;

nice triangle ;-)

SNIP

Reply via email to