mirror of
https://github.com/golang/go
synced 2024-11-25 21:28:03 -07:00
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>
This commit is contained in:
parent
3d80761531
commit
3f7a030e02
@ -1 +1,2 @@
|
|||||||
pkg runtime/debug, func SetCrashOutput(*os.File) error #42888
|
pkg runtime/debug, type CrashOptions struct #67182
|
||||||
|
pkg runtime/debug, func SetCrashOutput(*os.File, ...CrashOptions) error #42888
|
||||||
|
1
doc/next/6-stdlib/99-minor/runtime/debug/67182.md
Normal file
1
doc/next/6-stdlib/99-minor/runtime/debug/67182.md
Normal file
@ -0,0 +1 @@
|
|||||||
|
<!-- pacify TestCheckAPIFragments -->
|
@ -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
|
// SetCrashOutput configures a single additional file where unhandled
|
||||||
// panics and other fatal errors are printed, in addition to standard error.
|
// panics and other fatal errors are printed, in addition to standard error.
|
||||||
// There is only one additional file: calling SetCrashOutput again overrides
|
// 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).
|
// To disable this additional crash output, call SetCrashOutput(nil).
|
||||||
// If called concurrently with a crash, some in-progress output may be written
|
// If called concurrently with a crash, some in-progress output may be written
|
||||||
// to the old file even after an overriding SetCrashOutput returns.
|
// 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)
|
fd := ^uintptr(0)
|
||||||
if f != nil {
|
if f != nil {
|
||||||
// The runtime will write to this file descriptor from
|
// The runtime will write to this file descriptor from
|
||||||
|
Loading…
Reference in New Issue
Block a user