gcc/libgo/runtime
Ian Lance Taylor 6bd37418a3 runtime: abort stack scan in cases that we cannot unwind the stack
In signal-triggered stack scan, if the signal is delivered at
    certain bad time (e.g. in vdso, or in the middle of setcontext?),
    the unwinder may not be able to unwind the whole stack, while it
    still reports _URC_END_OF_STACK. So we cannot rely on _URC_END_OF_STACK
    to tell if it successfully scanned the stack. Instead, we check
    the last Go frame to see it actually reached the end of the stack.
    For Go-created stack, this is runtime.kickoff. For C-created
    stack, we need to record the outermost Go frame when it enters
    the Go side.
    
    Also we cannot unwind the stack if the signal is delivered in the
    middle of runtime.gogo, halfway through a goroutine switch, where
    the g and the stack don't match. Give up in this case as well.
    
    Reviewed-on: https://go-review.googlesource.com/c/159098

From-SVN: r269018
2019-02-19 15:32:34 +00:00
..
aeshash.c runtime: add arm64 version of AES hash code 2018-10-01 20:14:29 +00:00
arch.h
array.h
defs.h
env_posix.c libgo: add hurd build tags 2019-02-01 21:57:36 +00:00
getncpu-aix.c Big merge of changes to gofrontend repo that were postponed due to the 2017-05-10 17:26:09 +00:00
getncpu-bsd.c
getncpu-hurd.c runtime: add getproccount for hurd 2019-02-01 22:55:55 +00:00
getncpu-irix.c
getncpu-linux.c runtime: Check for CPU_COUNT itself, don't check glibc version. 2014-10-03 05:04:59 +00:00
getncpu-none.c
getncpu-solaris.c
go-assert.c
go-assert.h
go-caller.c compiler, runtime: harmonize types referenced by both C and Go 2019-02-15 01:57:51 +00:00
go-callers.c compiler, runtime: harmonize types referenced by both C and Go 2019-02-15 01:57:51 +00:00
go-cdiv.c runtime: fix misc gcc-isms and undefined behavior 2014-05-28 23:10:47 +00:00
go-cgo.c runtime: copy cgo support from Go 1.7 runtime 2016-12-19 18:00:35 +00:00
go-construct-map.c runtime: fix makemap calls in __go_construct_map 2018-01-10 15:04:21 +00:00
go-ffi.c runtime, reflect: rewrite Go to FFI type conversion in Go 2016-11-18 00:15:38 +00:00
go-fieldtrack.c runtime: fix type descriptor name in C code 2018-01-31 18:25:17 +00:00
go-libmain.c compiler, runtime: harmonize types referenced by both C and Go 2019-02-15 01:57:51 +00:00
go-main.c compiler, runtime: harmonize types referenced by both C and Go 2019-02-15 01:57:51 +00:00
go-matherr.c
go-memclr.c libgo: update to Go 1.8 release candidate 1 2017-01-14 00:05:42 +00:00
go-memcmp.c
go-memequal.c compiler, runtime: replace hashmap code with Go 1.7 hashmap 2016-09-21 20:58:51 +00:00
go-memmove.c compiler, runtime: replace hashmap code with Go 1.7 hashmap 2016-09-21 20:58:51 +00:00
go-nanotime.c runtime: copy runtime package time code from Go 1.7 2016-10-15 00:29:06 +00:00
go-nosys.c runtime: make go-nosys.c compile with !HAVE_SYSCALL 2017-08-29 20:57:20 +00:00
go-now.c re PR c/82922 (Request: add -Wstrict-prototypes to -Wextra as K&R style is obsolescent) 2018-01-10 15:42:23 +00:00
go-reflect-call.c compiler, runtime: harmonize types referenced by both C and Go 2019-02-15 01:57:51 +00:00
go-runtime-error.c runtime: use the call instruction's PC for panic-in-runtime detection 2019-01-29 00:49:23 +00:00
go-setenv.c runtime: don't call __go_alloc/__go_free in environment functions 2016-11-18 16:03:13 +00:00
go-signal.c re PR go/81893 (compilation error in libgo starting with r251127) 2017-08-18 20:17:26 +00:00
go-string.h
go-strslice.c runtime: always initialize str field in __go_string_slice result 2017-09-18 22:29:45 +00:00
go-type.h Big merge of changes to gofrontend repo that were postponed due to the 2017-05-10 17:26:09 +00:00
go-typedesc-equal.c re PR go/65755 (incorrect reflection of struct fields with gccgo) 2015-04-17 18:19:44 +00:00
go-unsafe-pointer.c compiler: rationalize external symbol names 2018-01-24 23:50:09 +00:00
go-unsetenv.c runtime: don't call __go_alloc/__go_free in environment functions 2016-11-18 16:03:13 +00:00
go-unwind.c runtime: abort stack scan in cases that we cannot unwind the stack 2019-02-19 15:32:34 +00:00
go-varargs.c runtime: include <syscall.h> and <sys/syscall.h> if available 2019-02-15 14:25:12 +00:00
panic.c compiler, runtime: harmonize types referenced by both C and Go 2019-02-15 01:57:51 +00:00
print.c runtime: copy print/println support from Go 1.7 2016-10-10 23:13:39 +00:00
proc.c runtime: in doscanstackswitch, set gp->m before gogo 2019-01-07 22:07:26 +00:00
rtems-task-variable-add.c
runtime.h compiler,runtime: use __builtin_dwarf_cfa for getcallersp 2019-02-15 23:22:29 +00:00
runtime_c.c libgo: update to Go 1.11 2018-09-24 21:46:21 +00:00
stack.c runtime: add type cast for non-split-stack calls to scanstackblock 2019-02-15 13:54:45 +00:00
yield.c runtime: copy signal code from Go 1.7 runtime 2016-11-10 22:53:23 +00:00