diff options
author | Arun Sharma <aruns@google.com> | 2010-04-28 16:32:30 -0700 |
---|---|---|
committer | Arun Sharma <arun@sharma-home.net> | 2010-04-28 16:32:30 -0700 |
commit | 215afa30b782970479e956b7bb96dca7cd9325ea (patch) | |
tree | 290588c32f3934655ed2ed0d75e9b5bb6a0b52ec | |
parent | 045c55b2a296988c16a4c1b90f3d8b7e8b78752b (diff) | |
download | libunwind-215afa30b782970479e956b7bb96dca7cd9325ea.tar.gz |
Add unwind descriptors to getcontext.S
-rw-r--r-- | src/x86/getcontext-freebsd.S | 2 | ||||
-rw-r--r-- | src/x86/getcontext-linux.S | 2 | ||||
-rw-r--r-- | src/x86_64/getcontext.S | 4 | ||||
-rwxr-xr-x | tests/run-ptrace-mapper | 2 |
4 files changed, 9 insertions, 1 deletions
diff --git a/src/x86/getcontext-freebsd.S b/src/x86/getcontext-freebsd.S index 92ae26f4..eb435394 100644 --- a/src/x86/getcontext-freebsd.S +++ b/src/x86/getcontext-freebsd.S @@ -27,6 +27,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ .global _Ux86_getcontext .type _Ux86_getcontext, @function _Ux86_getcontext: + .cfi_startproc pushl %eax mov 8(%esp),%eax /* ucontext_t* */ popl FREEBSD_UC_MCONTEXT_EAX_OFF(%eax) @@ -81,6 +82,7 @@ _Ux86_getcontext: xorl %eax, %eax ret + .cfi_endproc .size _Ux86_getcontext, . - _Ux86_getcontext /* We do not need executable stack. */ diff --git a/src/x86/getcontext-linux.S b/src/x86/getcontext-linux.S index a0714cd1..c469dadb 100644 --- a/src/x86/getcontext-linux.S +++ b/src/x86/getcontext-linux.S @@ -36,6 +36,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ .global _Ux86_getcontext .type _Ux86_getcontext, @function _Ux86_getcontext: + .cfi_startproc mov 4(%esp),%eax /* ucontext_t* */ /* EAX is not preserved. */ @@ -66,6 +67,7 @@ _Ux86_getcontext: xor %eax, %eax ret + .cfi_endproc .size _Ux86_getcontext, . - _Ux86_getcontext /* We do not need executable stack. */ diff --git a/src/x86_64/getcontext.S b/src/x86_64/getcontext.S index a0df6f15..15fff283 100644 --- a/src/x86_64/getcontext.S +++ b/src/x86_64/getcontext.S @@ -37,6 +37,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ .global _Ux86_64_getcontext .type _Ux86_64_getcontext, @function _Ux86_64_getcontext: + .cfi_startproc /* Callee saved: RBX, RBP, R12-R15 */ movq %r12, UC_MCONTEXT_GREGS_R12(%rdi) @@ -70,7 +71,9 @@ _Ux86_64_getcontext: /* Save rflags and segment registers, so that sigreturn(2) does not complain. */ pushfq + .cfi_adjust_cfa_offset 8 popq UC_MCONTEXT_RFLAGS(%rdi) + .cfi_adjust_cfa_offset -8 movl $0, UC_MCONTEXT_FLAGS(%rdi) movw %cs, UC_MCONTEXT_CS(%rdi) movw %ss, UC_MCONTEXT_SS(%rdi) @@ -95,6 +98,7 @@ _Ux86_64_getcontext: xorq %rax, %rax retq + .cfi_endproc .size _Ux86_64_getcontext, . - _Ux86_64_getcontext /* We do not need executable stack. */ diff --git a/tests/run-ptrace-mapper b/tests/run-ptrace-mapper index f51cf9a1..dc3010d4 100755 --- a/tests/run-ptrace-mapper +++ b/tests/run-ptrace-mapper @@ -1,2 +1,2 @@ #!/bin/sh -./test-ptrace -c -n -t ./mapper +./test-ptrace -c -n -t ./mapper $* |