diff options
author | Jerome Forissier <jerome.forissier@linaro.org> | 2017-09-29 13:58:27 -0700 |
---|---|---|
committer | Jérôme Forissier <jerome.forissier@linaro.org> | 2017-10-06 10:12:12 -0700 |
commit | 0e1c6e8e35c64fde0c31a34a68ca349240604c86 (patch) | |
tree | f7c49b031015cb4486e8cc258b84e515306dc27a /mk/config.mk | |
parent | 821a8785727575b3c98357155a132664082462b6 (diff) |
Dump call stack on TA panic
Adds support for dumping the call stack of a user-mode TA when it
panics. Stack unwinding happens in kernel mode by re-using
abort_print_error() in core/arch/arm/kernel/abort.c. Like for abort
dumps, the helper script scripts/symbolize.py may be used to obtain
source-level information.
This feature is enabled by default. Set CFG_UNWIND=n to disable it
(or CFG_TEE_CORE_DEBUG=n).
In libutee, the utee_panic() syscall wrapper is renamed __utee_panic()
and now takes an additional parameters: a stack pointer, in addition to
the panic code. utee_panic() is written in assembly and pushes some
registers onto the stack before calling __utee_panic(). When it is time
to return from syscall_panic(), tee_svc_sys_return_helper() uses the
stack pointer to get the information needed to unwind the TA stack.
A struct abort_info is created and abort_print_error() is called.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Tested-by: Jerome Forissier <jerome.forissier@linaro.org> (QEMU)
Tested-by: Jerome Forissier <jerome.forissier@linaro.org> (HiKey 32/64)
Tested-by: Jerome Forissier <jerome.forissier@linaro.org> (QEMUv8)
Diffstat (limited to 'mk/config.mk')
-rw-r--r-- | mk/config.mk | 5 |
1 files changed, 0 insertions, 5 deletions
diff --git a/mk/config.mk b/mk/config.mk index 837ccc68..881190af 100644 --- a/mk/config.mk +++ b/mk/config.mk @@ -61,11 +61,6 @@ CFG_TEE_TA_LOG_LEVEL ?= 1 # CFG_TEE_TA_LOG_LEVEL. Otherwise, they are not output at all CFG_TEE_CORE_TA_TRACE ?= y -# Define TEE_Panic as a macro to help debugging panics caused by calls to -# TEE_Panic. This flag can have a different value when later compiling the -# TA -CFG_TEE_PANIC_DEBUG ?= y - # If 1, enable debug features in TA memory allocation. # Debug features include check of buffer overflow, statistics, mark/check heap # feature. |