Add support utils for tracing
Following patch adds a userspace util genprof which is able to convert the console printed traces to gmon.out file used by gprof & friends. The log2dress will replace the adresses in logfile with a line numbers. Change-Id: I9f716f3ff2522a24fbc844a1dd5e32ef49b540c5 Signed-off-by: Rudolf Marek <r.marek@assembler.cz> Reviewed-on: http://review.coreboot.org/179 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
This commit is contained in:
committed by
Stefan Reinauer
parent
7f0e93060e
commit
8679e52b96
31
util/genprof/README
Normal file
31
util/genprof/README
Normal file
@@ -0,0 +1,31 @@
|
||||
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/devices/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/coreboot_ram | ./gprof2dot.py -e0 -n0 | dot -Tpng -o output.png
|
||||
|
||||
Which generates a PNG with a call graph.
|
Reference in New Issue
Block a user