$ pahole ~/bin/perf --hex --header=perf_file_header < ./perf.data { .magic = 0x32454c4946524550, .size = 0x68, .attr_size = 0x88, .attrs = { .offset = 0xa8, .size = 0x88, }, .data = { .offset = 0x130, .size = 0x588, }, .event_types = { .offset = 0, .size = 0, }, .adds_features = { 0x16717ffc, 0, 0, 0 }, }, $ It will be possible to do: $ pahole ~/bin/perf --header=perf_file_header -C 'perf_file_attr(range=attrs),perf_event_header(range=data,sizeof,type,type_enum=perf_event_type+perf_user_event_type)' < perf.data | grep -v ' = 0,' And have the result of the two following commands combined: $ $ pahole ~/bin/perf --header=perf_file_header -C 'perf_file_attr(range=attrs)' < perf.data | grep -v ' = 0,' { .attr = { .size = 120, .sample_period = 4000, .sample_freq = 4000, .sample_type = 263, .read_format = 4, .disabled = 1, .inherit = 1, .exclude_kernel = 1, .mmap = 1, .comm = 1, .freq = 1, .enable_on_exec = 1, .task = 1, .precise_ip = 3, .sample_id_all = 1, .exclude_guest = 1, .mmap2 = 1, .comm_exec = 1, .ksymbol = 1, .bpf_event = 1, }, .ids = { .offset = 104, .size = 64, }, }, $ $ pahole ~/bin/perf --header=perf_file_header -C 'perf_event_header(range=data,sizeof,type,type_enum=perf_event_type+perf_user_event_type)' --hex < perf.data { .header = { .type = PERF_RECORD_TIME_CONV, .misc = 0, .size = 0x20, }, .time_shift = 0x1f, .time_mult = 0x3c9b3031, .time_zero = 0x18c520cf8532e, }, { .header = { .type = PERF_RECORD_THREAD_MAP, .misc = 0, .size = 0x28, }, .nr = 0x1, .entries = 0x50 0x7e 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00, }, { .header = { .type = PERF_RECORD_CPU_MAP, .misc = 0, .size = 0x20, }, .data = { .type = 0x1, .data = "", }, }, { .header = { .type = PERF_RECORD_CGROUP, .misc = 0, .size = 0x28, }, .id = 0x1, .path = "/", }, { .header = { .type = PERF_RECORD_CGROUP, .misc = 0, .size = 0x30, }, .id = 0x611, .path = "/system.slice", }, { .header = { .type = PERF_RECORD_CGROUP, .misc = 0, .size = 0x30, }, .id = 0x8, .path = "/machine.slice", }, { .header = { .type = PERF_RECORD_CGROUP, .misc = 0, .size = 0x80, }, .id = 0x1e94, .path = "/machine.slice/libpod-42be8e8d4eb9d22405845005f0d04ea398548dccc934a150fbaa3c1f1f9492c2.scope", }, { .header = { .type = PERF_RECORD_CGROUP, .misc = 0, .size = 0x58, }, .id = 0xd, .path = "/machine.slice/machine-qemu\x2d1\x2drhel6.sandy.scope", }, { .header = { .type = PERF_RECORD_COMM, .misc = 0, .size = 0x28, }, .pid = 0x7e50, .tid = 0x7e50, .comm = "perf", }, { .header = { .type = PERF_RECORD_COMM, .misc = 0x2000, .size = 0x28, }, .pid = 0x7e50, .tid = 0x7e50, .comm = "sleep", }, { .header = { .type = PERF_RECORD_MMAP2, .misc = 0x2, .size = 0x68, }, .pid = 0x7e50, .tid = 0x7e50, .start = 0x55ea2a865000, .len = 0x4000, .pgoff = 0x2000, .maj = 0xfd, .min = 0, .ino = 0x1e0526, .ino_generation = 0xc97273c3, .prot = 0x5, .flags = 0x1802, .filename = "/usr/bin/sleep", }, { .header = { .type = PERF_RECORD_MMAP2, .misc = 0x2, .size = 0x70, }, .pid = 0x7e50, .tid = 0x7e50, .start = 0x7f53040c7000, .len = 0x20000, .pgoff = 0x1000, .maj = 0xfd, .min = 0, .ino = 0x1e1faf, .ino_generation = 0x83ee2ed3, .prot = 0x5, .flags = 0x1802, .filename = "/usr/lib64/ld-2.29.so", }, { .header = { .type = PERF_RECORD_MMAP2, .misc = 0x2, .size = 0x60, }, .pid = 0x7e50, .tid = 0x7e50, .start = 0x7fffd8b69000, .len = 0x2000, .pgoff = 0, .maj = 0, .min = 0, .ino = 0, .ino_generation = 0, .prot = 0x5, .flags = 0x1002, .filename = "[vdso]", }, { .header = { .type = PERF_RECORD_SAMPLE, .misc = 0x4001, .size = 0x28, }, .array = { 0xffffffff88c00b27, 0x7e5000007e50, 0x190aac32b3544, 0x1 }, }, { .header = { .type = PERF_RECORD_SAMPLE, .misc = 0x4001, .size = 0x28, }, .array = { 0xffffffff88c00b27, 0x7e5000007e50, 0x190aac32b4a90, 0x1 }, }, { .header = { .type = PERF_RECORD_SAMPLE, .misc = 0x4001, .size = 0x28, }, .array = { 0xffffffff88c00b27, 0x7e5000007e50, 0x190aac32b57c8, 0x6 }, }, { .header = { .type = PERF_RECORD_SAMPLE, .misc = 0x4001, .size = 0x28, }, .array = { 0xffffffff88c00b27, 0x7e5000007e50, 0x190aac32b644b, 0x3a }, }, { .header = { .type = PERF_RECORD_SAMPLE, .misc = 0x4001, .size = 0x28, }, .array = { 0xffffffff88c00b27, 0x7e5000007e50, 0x190aac32b7279, 0x266 }, }, { .header = { .type = PERF_RECORD_SAMPLE, .misc = 0x4001, .size = 0x28, }, .array = { 0xffffffff88c00b27, 0x7e5000007e50, 0x190aac32b97c7, 0x16cd }, }, { .header = { .type = PERF_RECORD_SAMPLE, .misc = 0x4002, .size = 0x28, }, .array = { 0x7f53040c814b, 0x7e5000007e50, 0x190aac32bc2b8, 0x5f03 }, }, { .header = { .type = PERF_RECORD_SAMPLE, .misc = 0x4002, .size = 0x28, }, .array = { 0x7f53040dd5af, 0x7e5000007e50, 0x190aac32c1af2, 0x16141 }, }, { .header = { .type = PERF_RECORD_MMAP2, .misc = 0x2, .size = 0x70, }, .pid = 0x7e50, .tid = 0x7e50, .start = 0x7f5303efe000, .len = 0x14d000, .pgoff = 0x22000, .maj = 0xfd, .min = 0, .ino = 0x1e028a, .ino_generation = 0xd5947787, .prot = 0x5, .flags = 0x1002, .filename = "/usr/lib64/libc-2.29.so", }, { .header = { .type = PERF_RECORD_SAMPLE, .misc = 0x4002, .size = 0x28, }, .array = { 0x7f53040d7281, 0x7e5000007e50, 0x190aac32ee484, 0x31f6d }, }, { .header = { .type = PERF_RECORD_SAMPLE, .misc = 0x4002, .size = 0x28, }, .array = { 0x7f5304011e55, 0x7e5000007e50, 0x190aac331dd50, 0x34455 }, }, { .type = PERF_RECORD_EXIT, .misc = 0, .size = 0x30, }, { .type = PERF_RECORD_FINISHED_ROUND, .misc = 0, .size = 0x8, }, [acme@five pahole]$