| #
f7a5c21e |
| 29-May-2023 |
Jerome Forissier <jerome.forissier@linaro.org> |
arm64: memtag: strip tag from crash dumps
The MTE tag is not really useful when displaying a crash dump. In fact it makes it more complicated for tools like script/symbolize.py to retrieve the actua
arm64: memtag: strip tag from crash dumps
The MTE tag is not really useful when displaying a crash dump. In fact it makes it more complicated for tools like script/symbolize.py to retrieve the actual (untagged) virtual address, especially as we now support non-Arm architectures and therefore blindly stripping the MTE bits is not possible.
This commit strips the tag in call stacks displayed by print_stack_arm64(). It also removes it from the virtual address shown on abort (__print_abort_info()) since symbolize.py does try to resolve the address as symbol + offset ; but in this case the tagged address is printed as well, because it can be helpful to diagnose tag check faults.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@foss.st.com>
show more ...
|
| #
c6c416f1 |
| 10-Jan-2022 |
Ruchika Gupta <ruchika.gupta@linaro.org> |
ldelf: strip PAC from TA addresses
When pointer authentication is enables for TA's, the LR values saved in the stack will have PAC which must be stripped off when unwinding the stack.
Signed-off-by
ldelf: strip PAC from TA addresses
When pointer authentication is enables for TA's, the LR values saved in the stack will have PAC which must be stripped off when unwinding the stack.
Signed-off-by: Ruchika Gupta <ruchika.gupta@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
237dacb9 |
| 28-Jul-2021 |
Jerome Forissier <jerome@forissier.org> |
arm64: format call stack addresses on 8 characters by default
print_stack_arm64() currently shows the full 64 bit addresses in hexadecimal with leading zeros (0x0000000000000000). This is a bit hard
arm64: format call stack addresses on 8 characters by default
print_stack_arm64() currently shows the full 64 bit addresses in hexadecimal with leading zeros (0x0000000000000000). This is a bit hard to read and is not necessary since virtual addresses are typically 32 or 36 bits (defined by CFG_LPAE_ADDR_SPACE_BITS), and in any case nowhere near 64 bits. Therefore, use a 32-bit format by default (0x00000000) and expand the width as necessary. The new format is already used in ldelf to print the region addresses so this changes brings consistency.
Signed-off-by: Jerome Forissier <jerome@forissier.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
e1a6547d |
| 03-Sep-2020 |
Jerome Forissier <jerome@forissier.org> |
Add unwind library (libunw)
Adds libunw to consolidate the stack unwinding code found in ldelf/unwind_arm{32,64}.c and core/arch/arm/kernel/unwind_arm{32,64}.c.
The library is called "libunw" rathe
Add unwind library (libunw)
Adds libunw to consolidate the stack unwinding code found in ldelf/unwind_arm{32,64}.c and core/arch/arm/kernel/unwind_arm{32,64}.c.
The library is called "libunw" rather than "libunwind" to avoid confusion with the GNU libunwind [1]. The header file is <unw/unwind.h> to avoid a conflict with GCC's <unwind.h>.
Link: [1] https://www.nongnu.org/libunwind Signed-off-by: Jerome Forissier <jerome@forissier.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|