[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Libunwind-devel] arm: issue of reading SP register
From: |
MyungJoo Ham |
Subject: |
[Libunwind-devel] arm: issue of reading SP register |
Date: |
Mon, 07 Mar 2016 07:28:13 +0000 (GMT) |
Hello,
I have been tracking stack unwinding issues for stacks created by CPP
and Assemblies in ARM and found that relying on dwarf->cfa in
src/arm/Gregs.c for SP register has a problem when we are trying to
unwind to a stack that is not supposed to be DWARF compatible
from a stack what is compatible.
https://github.com/dotnet/coreclr/issues/3309
The issue was easilly mitigated by allowing reading SP from SP, not from CFA.
Besides, ARM-DWARF has a big problem of not properly allowing falling back
from a failed trial of DWARF unwinding, which forces me to disable DWARF usage
in ARM-Linux machines. (when DWARF fails, it is supposed to try other two
methods, which fail because DWARF-trial has contaminated required data
structures:
they succeed if DWARF is skipped.)
In order to bypass such issues, I suggest the following patch,
which is going to be posted as "reply" to this message.
Cheers,
MyungJoo
--
MyungJoo Ham (함명주), Ph.D.
Developer eXperience Lab, S/W Platform Team, Software R&D Center
Samsung Electronics
Cell: +82-10-6714-2858