20f25dd5c8
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>
31 lines
904 B
Text
31 lines
904 B
Text
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.
|