mirror of
				https://gitea.com/Lydanne/buildx.git
				synced 2025-11-04 18:13:42 +08:00 
			
		
		
		
	full diff: - https://github.com/google/certificate-transparency-go/compare/v1.0.21...v1.1.4 - https://github.com/kubernetes/klog/compare/v2.30.0...v2.80.1 Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
		
			
				
	
	
		
			43 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
// Go support for leveled logs, analogous to https://code.google.com/p/google-glog/
 | 
						|
//
 | 
						|
// Copyright 2013 Google Inc. All Rights Reserved.
 | 
						|
//
 | 
						|
// Licensed under the Apache License, Version 2.0 (the "License");
 | 
						|
// you may not use this file except in compliance with the License.
 | 
						|
// You may obtain a copy of the License at
 | 
						|
//
 | 
						|
//     http://www.apache.org/licenses/LICENSE-2.0
 | 
						|
//
 | 
						|
// Unless required by applicable law or agreed to in writing, software
 | 
						|
// distributed under the License is distributed on an "AS IS" BASIS,
 | 
						|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
						|
// See the License for the specific language governing permissions and
 | 
						|
// limitations under the License.
 | 
						|
 | 
						|
// Package dbg provides some helper code for call traces.
 | 
						|
package dbg
 | 
						|
 | 
						|
import (
 | 
						|
	"runtime"
 | 
						|
)
 | 
						|
 | 
						|
// Stacks is a wrapper for runtime.Stack that attempts to recover the data for
 | 
						|
// all goroutines or the calling one.
 | 
						|
func Stacks(all bool) []byte {
 | 
						|
	// We don't know how big the traces are, so grow a few times if they don't fit. Start large, though.
 | 
						|
	n := 10000
 | 
						|
	if all {
 | 
						|
		n = 100000
 | 
						|
	}
 | 
						|
	var trace []byte
 | 
						|
	for i := 0; i < 5; i++ {
 | 
						|
		trace = make([]byte, n)
 | 
						|
		nbytes := runtime.Stack(trace, all)
 | 
						|
		if nbytes < len(trace) {
 | 
						|
			return trace[:nbytes]
 | 
						|
		}
 | 
						|
		n *= 2
 | 
						|
	}
 | 
						|
	return trace
 | 
						|
}
 |