diff options
| author | Alan Donovan <adonovan@google.com> | 2024-05-15 14:55:19 -0400 |
|---|---|---|
| committer | Alan Donovan <adonovan@google.com> | 2024-05-15 21:04:14 +0000 |
| commit | 3f7a030e02c31aaf28e8e107270d6b33920c1cae (patch) | |
| tree | 98c6f48e4e547d0e28f3fc04fbe69ce7294154e7 /src/runtime/debug | |
| parent | 3d80761531a6eb02934bc6b7236d77723f0b54fe (diff) | |
| download | go-3f7a030e02c31aaf28e8e107270d6b33920c1cae.tar.xz | |
runtime/debug: add SetCrashOutput(...CrashOptions) parameter
This is a placeholder for future options (e.g. JSON).
The parameter is temporarily variadic to avoid breaking
x/telemetry (see CL 585378), but I plan to remove
the "..." later this week.
Updates #67182
Change-Id: I3f6f39455d852f92902f8e3f007d3093cbe555db
Reviewed-on: https://go-review.googlesource.com/c/go/+/585557
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Austin Clements <austin@google.com>
Diffstat (limited to 'src/runtime/debug')
| -rw-r--r-- | src/runtime/debug/stack.go | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/runtime/debug/stack.go b/src/runtime/debug/stack.go index 8dfea52d34..dc7dc5d569 100644 --- a/src/runtime/debug/stack.go +++ b/src/runtime/debug/stack.go @@ -31,6 +31,12 @@ func Stack() []byte { } } +// CrashOptions provides options that control the formatting of the +// fatal crash message. +type CrashOptions struct { + /* for future expansion */ +} + // SetCrashOutput configures a single additional file where unhandled // panics and other fatal errors are printed, in addition to standard error. // There is only one additional file: calling SetCrashOutput again overrides @@ -40,7 +46,14 @@ func Stack() []byte { // To disable this additional crash output, call SetCrashOutput(nil). // If called concurrently with a crash, some in-progress output may be written // to the old file even after an overriding SetCrashOutput returns. -func SetCrashOutput(f *os.File) error { +// +// TODO(adonovan): the variadic ... is a short-term measure to avoid +// breaking the call in x/telemetry; it will be removed before the +// go1.23 freeze. +func SetCrashOutput(f *os.File, opts ...CrashOptions) error { + if len(opts) > 1 { + panic("supply at most 1 CrashOptions") + } fd := ^uintptr(0) if f != nil { // The runtime will write to this file descriptor from |
