All variables are 64-bit and so %l / %ll are not required, and the latter is actually invalid:
$ sudo stap -e 'probe begin{printf ("BEGIN")}' -I . parse error: invalid or missing conversion specifier saw: operator ',' at ./qemu-system-x86_64-log.stp:15118:101 source: printf("%d@%d vhost_vdpa_set_log_base dev: %p base: 0x%x size: %llu refcnt: %d fd: %d log: %p\n", pid(), gettimeofday_ns(), dev, base, size, refcnt, fd, log) ^ Signed-off-by: Daniel P. Berrangé <berra...@redhat.com> --- scripts/tracetool/format/log_stap.py | 6 ++++++ 1 file changed, 6 insertions(+) This is an alternative approach to https://lists.gnu.org/archive/html/qemu-devel/2021-01/msg00550.html diff --git a/scripts/tracetool/format/log_stap.py b/scripts/tracetool/format/log_stap.py index b486beb672..7bac10784b 100644 --- a/scripts/tracetool/format/log_stap.py +++ b/scripts/tracetool/format/log_stap.py @@ -49,6 +49,12 @@ def c_fmt_to_stap(fmt): elif fmt[i] == '"' and not escape: if state == STATE_LITERAL: state = STATE_SKIP + # All variables in systemtap are 64-bit in size + # The "%l" integer size qualifiers is thus redundant + # and "%ll" is not valid at all. Simply strip all + # size qualifiers for sanity + literal = literal.replace("%ll", "%") + literal = literal.replace("%l", "%") bits.append(literal) literal = "" else: -- 2.29.2