From ff227b8a56b66e72de744a39f5b68d6e6ce7f3fe Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Wed, 20 Jul 2016 15:40:10 -0700 Subject: [PATCH] runtime: add explicit `INT $3` at end of Darwin amd64 sigtramp The omission of this instruction could confuse the traceback code if a SIGPROF occurred during a signal handler. The traceback code would trace up to sigtramp, but would then get confused because it would see a PC address that did not appear to be in the function. Fixes #16453. Change-Id: I2b3d53e0b272fb01d9c2cb8add22bad879d3eebc Reviewed-on: https://go-review.googlesource.com/25104 Reviewed-by: Josh Bleecher Snyder --- src/runtime/sys_darwin_amd64.s | 1 + 1 file changed, 1 insertion(+) diff --git a/src/runtime/sys_darwin_amd64.s b/src/runtime/sys_darwin_amd64.s index e09b906ba5..e4837ce291 100644 --- a/src/runtime/sys_darwin_amd64.s +++ b/src/runtime/sys_darwin_amd64.s @@ -244,6 +244,7 @@ TEXT runtime·sigtramp(SB),NOSPLIT,$32 MOVQ R8, 24(SP) // ctx MOVQ $runtime·sigtrampgo(SB), AX CALL AX + INT $3 // not reached (see issue 16453) TEXT runtime·mmap(SB),NOSPLIT,$0 MOVQ addr+0(FP), DI // arg 1 addr -- 2.50.0