mirror of
https://github.com/golang/go
synced 2024-11-19 00:34:40 -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>
65 lines
1.0 KiB
Go
65 lines
1.0 KiB
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 excregs386 struct {
|
|
eax uint32
|
|
ecx uint32
|
|
edx uint32
|
|
ebx uint32
|
|
esp uint32
|
|
ebp uint32
|
|
esi uint32
|
|
edi uint32
|
|
eip uint32
|
|
eflags uint32
|
|
}
|
|
|
|
type excregsamd64 struct {
|
|
rax uint64
|
|
rcx uint64
|
|
rdx uint64
|
|
rbx uint64
|
|
rsp uint64
|
|
rbp uint64
|
|
rsi uint64
|
|
rdi uint64
|
|
r8 uint64
|
|
r9 uint64
|
|
r10 uint64
|
|
r11 uint64
|
|
r12 uint64
|
|
r13 uint64
|
|
r14 uint64
|
|
r15 uint64
|
|
rip uint64
|
|
rflags uint32
|
|
}
|
|
|
|
type exccontext struct {
|
|
size uint32
|
|
portable_context_offset uint32
|
|
portable_context_size uint32
|
|
arch uint32
|
|
regs_size uint32
|
|
reserved [11]uint32
|
|
regs excregsamd64
|
|
}
|
|
|
|
type excportablecontext struct {
|
|
pc uint32
|
|
sp uint32
|
|
fp uint32
|
|
}
|