c2e4941367
Some Unix systems (GuixSD, NixOS) do not install programs like Bash and Python to /usr/bin, and /usr/bin/env has to be used to locate these instead. Change-Id: I7546bcb881c532adc984577ecb0ee2ec4f2efe00 Signed-off-by: Yegor Timoshenko <yegortimoshenko@riseup.net> Reviewed-on: https://review.coreboot.org/28953 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Patrick Georgi <pgeorgi@google.com> |
||
---|---|---|
.. | ||
description.md | ||
genprof.c | ||
log2dress | ||
Makefile | ||
README |
Function tracing ---------------- Enable CONFIG_TRACE in debug menu. Run the compiled image on target. You will get a log with a lot of lines like: ... ~0x001072e8(0x00100099) ~0x00108bc0(0x0010730a) ... First address is address of function which was just entered, the second address is address of functions which call that. You can use the log2dress to dress the log again: ... src/arch/x86/lib/c_start.S:85 calls /home/ruik/coreboot/src/boot/selfboot.c:367 /home/ruik/coreboot/src/boot/selfboot.c:370 calls /home/ruik/coreboot/src/device/device.c:325 ... Alternatively, you can use genprof to generate a gmon.out file, which can be used by gprof to show the call traces. You will need to install uthash library to compile that. Great use is: make ./genprof /tmp/yourlog ; gprof ../../build/ramstage | ./gprof2dot.py -e0 -n0 | dot -Tpng -o output.png Which generates a PNG with a call graph.