coreboot-kgpe-d16/util/genprof
Furquan Shaikh 20f25dd5c8 Rename coreboot_ram stage to ramstage
Rename coreboot_ram stage to ramstage. This is done in order to provide
consistency with other stage names (bootblock, romstage) and to allow any
Makefile rule generalization, required for patches to be submitted later.

Change-Id: Ib66e43b7e17b9c48b2d099670ba7e7d857673386
Signed-off-by: Furquan Shaikh <furquan@google.com>
Reviewed-on: http://review.coreboot.org/5567
Tested-by: build bot (Jenkins)
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Reviewed-by: Patrick Georgi <patrick@georgi-clan.de>
2014-04-26 13:27:09 +02:00
..
Makefile Add support utils for tracing 2011-09-07 01:27:57 +02:00
README Rename coreboot_ram stage to ramstage 2014-04-26 13:27:09 +02:00
genprof.c Add support utils for tracing 2011-09-07 01:27:57 +02:00
log2dress Rename coreboot_ram stage to ramstage 2014-04-26 13:27:09 +02:00

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.