I was trying to create an event with a __dynamic_array() where the small contents is printed with TP_printk("%*phN", __get_dynamic_array_len(x), __get_dynamic_array(x)) which works OK in the kernel, but trace-cmd just prints 0x<userspaceaddr>hN There are many many more kernel extensions to %p though, and only two (IPv4 and MAC addresses) seem to be supported right now. See the kernel's lib/vsprintf.c, documentation is above the pointer() function.
Hi Johannes, I'm working on some trace-cmd optimizations related to parsing and printing these print formats, will look at lib/vsprintf.c documentation and how to improve trace-cmd to handle these cases. Thanks for using trace-cmd and reporting this issue.
Submitted a fix: https://patchwork.kernel.org/patch/11536179/
Awesome, thanks!
Fixed by: 29885d7fbb55 ("trace-cmd: Add support for more printk format specifiers")