mirror of
https://github.com/golang/go
synced 2024-11-14 15:10:54 -07:00
5bfed7c6c0
Normally, a panic/throw only shows the thread stack for the current thread and all paused goroutines. Goroutines running on other threads, or other threads running on their system stacks, are opaque. Change that when GODEBUG=crash, by passing a SIGQUIT around to all the threads when GODEBUG=crash. If this works out reasonably well, we might make the SIGQUIT relay part of the standard panic/throw death, perhaps eliding idle m's. Change-Id: If7dd354f7f3a6e326d17c254afcf4f7681af2f8b Reviewed-on: https://go-review.googlesource.com/2811 Reviewed-by: Rick Hudson <rlh@golang.org>
51 lines
892 B
Go
51 lines
892 B
Go
package runtime
|
|
|
|
const (
|
|
// These values are referred to in the source code
|
|
// but really don't matter. Even so, use the standard numbers.
|
|
_SIGQUIT = 3
|
|
_SIGSEGV = 11
|
|
_SIGPROF = 27
|
|
)
|
|
|
|
type timespec struct {
|
|
tv_sec int64
|
|
tv_nsec int32
|
|
}
|
|
|
|
type excregsarm struct {
|
|
r0 uint32
|
|
r1 uint32
|
|
r2 uint32
|
|
r3 uint32
|
|
r4 uint32
|
|
r5 uint32
|
|
r6 uint32
|
|
r7 uint32
|
|
r8 uint32
|
|
r9 uint32 // the value reported here is undefined.
|
|
r10 uint32
|
|
r11 uint32
|
|
r12 uint32
|
|
sp uint32 /* r13 */
|
|
lr uint32 /* r14 */
|
|
pc uint32 /* r15 */
|
|
cpsr uint32
|
|
}
|
|
|
|
type exccontext struct {
|
|
size uint32
|
|
portable_context_offset uint32
|
|
portable_context_size uint32
|
|
arch uint32
|
|
regs_size uint32
|
|
reserved [11]uint32
|
|
regs excregsarm
|
|
}
|
|
|
|
type excportablecontext struct {
|
|
pc uint32
|
|
sp uint32
|
|
fp uint32
|
|
}
|