The "+" printf flag format is not handled by trace-cmd report. "%+d" should result in printing "+N" with N a positive signed integer. Instead, it prints ">+<d" Tested on trace-cmd v3.1.5
The printf formats are handled by libtraceevent, so this is actually a libtraceevent bug and not a trace-cmd one. I'm curious, how did you find this? I don't see an event in the kernel that uses '%+d'. I was able to trigger it by adding a trace_printk("%+d", val).
Silly me didn't read the subject of this bugzilla where you specifically specify that it's a problem with 'trace_printk()' ;-)
I just found it when implementing support for implementing trace_printk() (or more: the vbin_printf() things) in the Rust parser, so I essentially used a combo of what is defined here: https://docs.kernel.org/core-api/printk-formats.html and what the ISO C printf handles. Right now I'm implementing the last "custom functions" like __print_array() & co, after which I should have an equivalent of trace-cmd report. The only thing I left out for now are %pI and __get_sockaddr() because I'd like to share a PoC, and the code is not super clean or commented but I'm almost there :)
Fixed by https://git.kernel.org/pub/scm/libs/libtrace/libtraceevent.git/commit/?id=0b9a34e45975edecfb8569849bfd9f5b3039f19f ("libtraceevent: Handle printf '%+d" case")