X7ROOT File Manager
Current Path:
/opt/golang/1.22.0/src/runtime/testdata/testprog
opt
/
golang
/
1.22.0
/
src
/
runtime
/
testdata
/
testprog
/
📁
..
📄
abort.go
(449 B)
📄
badtraceback.go
(1.18 KB)
📄
checkptr.go
(2.42 KB)
📄
crash.go
(2.47 KB)
📄
crashdump.go
(917 B)
📄
deadlock.go
(6.5 KB)
📄
framepointer.go
(839 B)
📄
framepointer_amd64.s
(248 B)
📄
framepointer_arm64.s
(249 B)
📄
gc.go
(12.08 KB)
📄
lockosthread.go
(6.54 KB)
📄
main.go
(651 B)
📄
map.go
(1.26 KB)
📄
memprof.go
(869 B)
📄
misc.go
(306 B)
📄
numcpu_freebsd.go
(3.38 KB)
📄
panicprint.go
(2.22 KB)
📄
panicrace.go
(414 B)
📄
preempt.go
(1.61 KB)
📄
segv.go
(479 B)
📄
segv_linux.go
(517 B)
📄
signal.go
(861 B)
📄
sleep.go
(378 B)
📄
stringconcat.go
(443 B)
📄
syscall_windows.go
(1.5 KB)
📄
syscalls.go
(256 B)
📄
syscalls_linux.go
(1.23 KB)
📄
syscalls_none.go
(455 B)
📄
timeprof.go
(813 B)
📄
traceback_ancestors.go
(2.07 KB)
📄
unsafe.go
(195 B)
📄
vdso.go
(1005 B)
Editing: crash.go
// Copyright 2015 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package main import ( "fmt" "runtime" ) func init() { register("Crash", Crash) register("DoublePanic", DoublePanic) register("ErrorPanic", ErrorPanic) register("StringerPanic", StringerPanic) register("DoubleErrorPanic", DoubleErrorPanic) register("DoubleStringerPanic", DoubleStringerPanic) register("StringPanic", StringPanic) register("NilPanic", NilPanic) register("CircularPanic", CircularPanic) } func test(name string) { defer func() { if x := recover(); x != nil { fmt.Printf(" recovered") } fmt.Printf(" done\n") }() fmt.Printf("%s:", name) var s *string _ = *s fmt.Print("SHOULD NOT BE HERE") } func testInNewThread(name string) { c := make(chan bool) go func() { runtime.LockOSThread() test(name) c <- true }() <-c } func Crash() { runtime.LockOSThread() test("main") testInNewThread("new-thread") testInNewThread("second-new-thread") test("main-again") } type P string func (p P) String() string { // Try to free the "YYY" string header when the "XXX" // panic is stringified. runtime.GC() runtime.GC() runtime.GC() return string(p) } // Test that panic message is not clobbered. // See issue 30150. func DoublePanic() { defer func() { panic(P("YYY")) }() panic(P("XXX")) } // Test that panic while panicking discards error message // See issue 52257 type exampleError struct{} func (e exampleError) Error() string { panic("important error message") } func ErrorPanic() { panic(exampleError{}) } type examplePanicError struct{} func (e examplePanicError) Error() string { panic(exampleError{}) } func DoubleErrorPanic() { panic(examplePanicError{}) } type exampleStringer struct{} func (s exampleStringer) String() string { panic("important stringer message") } func StringerPanic() { panic(exampleStringer{}) } type examplePanicStringer struct{} func (s examplePanicStringer) String() string { panic(exampleStringer{}) } func DoubleStringerPanic() { panic(examplePanicStringer{}) } func StringPanic() { panic("important string message") } func NilPanic() { panic(nil) } type exampleCircleStartError struct{} func (e exampleCircleStartError) Error() string { panic(exampleCircleEndError{}) } type exampleCircleEndError struct{} func (e exampleCircleEndError) Error() string { panic(exampleCircleStartError{}) } func CircularPanic() { panic(exampleCircleStartError{}) }
Upload File
Create Folder