8f0ec15ff6
Currently, the instructions of samples are shown as raw hex strings which are hard to read. x86 has a special option '--xed' to disassemble the hex string via intel XED tool. Here we use capstone as our disassembler engine to give more friendly instructions. We select libcapstone because capstone can provide more insn details. Perf will fallback to raw instructions if libcapstone is not available. The advantages compared to XED tool: * Support arm, arm64, x86-32, x86_64 (more could be supported), xed only for x86_64. * Immediate address operands are shown as symbol+offs. Signed-off-by: Changbin Du <changbin.du@huawei.com> Reviewed-by: Adrian Hunter <adrian.hunter@intel.com> Cc: changbin.du@gmail.com Cc: Thomas Richter <tmricht@linux.ibm.com> Cc: Andi Kleen <ak@linux.intel.com> Signed-off-by: Namhyung Kim <namhyung@kernel.org> Link: https://lore.kernel.org/r/20240217074046.4100789-3-changbin.du@huawei.com
17 lines
410 B
C
17 lines
410 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef PERF_PRINT_INSN_H
|
|
#define PERF_PRINT_INSN_H
|
|
|
|
#include <stddef.h>
|
|
#include <stdio.h>
|
|
|
|
struct perf_sample;
|
|
struct thread;
|
|
struct machine;
|
|
|
|
size_t sample__fprintf_insn_asm(struct perf_sample *sample, struct thread *thread,
|
|
struct machine *machine, FILE *fp);
|
|
size_t sample__fprintf_insn_raw(struct perf_sample *sample, FILE *fp);
|
|
|
|
#endif /* PERF_PRINT_INSN_H */
|