Skip to content

Commit 77230d8

Browse files
brsongraydon
authored andcommitted
---
yaml --- r: 6656 b: refs/heads/master c: 3e32f66 h: refs/heads/master v: v3
1 parent bbeb897 commit 77230d8

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
---
2-
refs/heads/master: e47f8fc709763581ec2ce4ea052b50cb89a9c4d7
2+
refs/heads/master: 3e32f6623cf89375ad5e07778da614d2b6300778

trunk/src/rt/arch/x86_64/morestack.S

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,20 @@ MORESTACK:
7171
leaq 16(%rbp), %rax
7272
pushq %rax
7373

74+
// During unwinding we want to skip our caller since it's not
75+
// a complete frame and will make the unwinder sad
76+
#if defined(__linux__)
77+
// Don't understand this line
78+
.cfi_offset 16, 0
79+
// Tell the unwinding where to get the stack pointer for
80+
// our grandparent frame
81+
.cfi_offset %rsp, -24
82+
#endif
83+
84+
// Save the grandparent stack pointer for the unwinder
85+
leaq 16(%rbp), %rax
86+
pushq %rax
87+
7488
// FIXME: libgcc also saves rax. not sure if we need to
7589

7690
// Save argument registers

0 commit comments

Comments
 (0)