libtraceevent: 1.9.0
Changes since 1.8.6:
New APIs:
Addition of loading the BTF file (/sys/kernel/btf/vmlinux) into the tep
handle to allow it to parse function parameters:
cat-33501 [005] ..... 136155.767950: function:
__x64_sys_execve(regs=0xffffc9000e3eff58)
cat-33501 [005] ..... 136155.767951: function:
getname_flags(filename=0x7ffe7d33f3d0, flags=0)
cat-33501 [005] ..... 136155.767951: function:
getname_flags.part.0(7ffe7d33f3d0, 0, 0, 0, 0, 0)
cat-33501 [005] ..... 136155.767951: function:
kmem_cache_alloc_noprof(s=0xffff8881001d3800, gfpflags=0xcc0)
cat-33501 [005] ..... 136155.767951: function:
fs_reclaim_acquire(gfp_mask=0xcc0)
cat-33501 [005] ..... 136155.767952: function:
fs_reclaim_release(gfp_mask=0xcc0)
tep_load_btf() - loads the raw BTF file and parses it.
tep_btf_print_args() - parses the arguments of a given function with the
given parameters.
tep_btf_list_args() - list the arguments of a given function to produce
its prototype.
- Add API for persistent ring buffer processing:
tep_parse_last_boot_info() - Reads and parses the last_boot_info file of a
persistent ring buffer from a previous boot. This
has the information to convert the addresses of
functions from the previous boot to the addresses of
the corresponding function of the current boot.
tep_load_modules() - If last_boot_info is loaded, then /proc/modules
should also be loaded to compare where the addresses
of the modules were loaded in the last boot (found in
the last_boot_info) to where they are loaded in the
current boot. This is used to convert the addresses
of module functions from the last boot to the address
of their corresponding function in the current boot.
The above functions are used to be able to convert the addresses of the
functions from the previous boot to their corresponding functions of the
current boot that the kallsyms came from. (see tep_parse_kallsyms())
Updates:
- Handle __get_stacktrace() in the print-fmt field that synthetic events
can add when they have a stacktrace field.