From: Pierrick Bouvier Date: Tue, 10 Feb 2026 20:13:43 +0000 (-0800) Subject: docs/about/emulation/uftrace: add info about automatic tracing X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5f43899e762286ebbcf67625130d6997796c5465;p=thirdparty%2Fqemu.git docs/about/emulation/uftrace: add info about automatic tracing Reviewed-by: Philippe Mathieu-Daudé Link: https://lore.kernel.org/qemu-devel/20260210201344.1403613-4-pierrick.bouvier@linaro.org Signed-off-by: Pierrick Bouvier --- diff --git a/docs/about/emulation.rst b/docs/about/emulation.rst index e8793b0f9c..f547e118ee 100644 --- a/docs/about/emulation.rst +++ b/docs/about/emulation.rst @@ -849,7 +849,7 @@ Symbols must be present in ELF binaries. It tracks the call stack (based on frame pointer analysis). Thus, your program and its dependencies must be compiled using ``-fno-omit-frame-pointer -mno-omit-leaf-frame-pointer``. In 2024, `Ubuntu and Fedora enabled it by -default again on x64 +default again on 64-bit platforms `_. On aarch64, this is less of a problem, as they are usually part of the ABI, except for leaf functions. That's true for user space applications, but not @@ -976,7 +976,7 @@ You can follow the exact same instructions for a x64 system, combining edk2, Linux, and Ubuntu, simply by switching to `x86_64 `_ branch. -To build the system:: +To build and run the system:: # Install dependencies $ sudo apt install -y podman qemu-user-static @@ -988,7 +988,14 @@ To build the system:: # system can be started using: $ ./run.sh /path/to/qemu-system-aarch64 -To generate a uftrace for a system boot from that:: + # generate a uftrace for execution (collect symbols automatically) + $ ./trace.sh /path/to/qemu-system-aarch64 + # show output log to read timestamps + $ cat uftrace.data/exec.log + # generate final trace (compressed) for perfetto + $ ./perfetto.sh ~/trace.gz + +To generate manually the same trace:: # run true and poweroff the system $ env INIT=true ./run.sh path/to/qemu-system-aarch64 \