/
/
opt
/
golang
/
1.22.0
/
src
/
runtime
/
testdata
/
testprog
Server: in-mum-web1112.main-hosting.eu (62.72.28.111)
You: 216.73.216.137
PHP 8.3.16
Dir:
/opt/golang/1.22.0/src/runtime/testdata/testprog
Edit:
/opt/golang/1.22.0/src/runtime/testdata/testprog/badtraceback.go
// Copyright 2018 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 ( "runtime" "runtime/debug" "unsafe" ) func init() { register("BadTraceback", BadTraceback) } func BadTraceback() { // Disable GC to prevent traceback at unexpected time. debug.SetGCPercent(-1) // Out of an abundance of caution, also make sure that there are // no GCs actively in progress. runtime.GC() // Run badLR1 on its own stack to minimize the stack size and // exercise the stack bounds logic in the hex dump. go badLR1() select {} } //go:noinline func badLR1() { // We need two frames on LR machines because we'll smash this // frame's saved LR. badLR2(0) } //go:noinline func badLR2(arg int) { // Smash the return PC or saved LR. lrOff := unsafe.Sizeof(uintptr(0)) if runtime.GOARCH == "ppc64" || runtime.GOARCH == "ppc64le" { lrOff = 32 // FIXED_FRAME or sys.MinFrameSize } lrPtr := (*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&arg)) - lrOff)) *lrPtr = 0xbad // Print a backtrace. This should include diagnostics for the // bad return PC and a hex dump. panic("backtrace") }
Ukuran: 1.2 KB