Patch to 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) CQ-DEPEND=CL:195101 BUG=None BRANCH=None TEST=Compiled successfully for all boards under mainboard/google/. Image booted successfully on link board Change-Id: I3e2495fc6a5cc91695ae04ffb438dd4ac265be64 Reviewed-on: https://chromium-review.googlesource.com/195059 Tested-by: Furquan Shaikh <furquan@chromium.org> Reviewed-by: Stefan Reinauer <reinauer@chromium.org> Commit-Queue: Furquan Shaikh <furquan@chromium.org>
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.
|