diff options
author | qrort <qrort@yandex-team.com> | 2022-12-02 11:31:25 +0300 |
---|---|---|
committer | qrort <qrort@yandex-team.com> | 2022-12-02 11:31:25 +0300 |
commit | b1f4ffc9c8abff3ba58dc1ec9a9f92d2f0de6806 (patch) | |
tree | 2a23209faf0fea5586a6d4b9cee60d1b318d29fe /library/go/x/xruntime/stacktrace.go | |
parent | 559174a9144de40d6bb3997ea4073c82289b4974 (diff) | |
download | ydb-b1f4ffc9c8abff3ba58dc1ec9a9f92d2f0de6806.tar.gz |
remove kikimr/driver DEPENDS
Diffstat (limited to 'library/go/x/xruntime/stacktrace.go')
-rw-r--r-- | library/go/x/xruntime/stacktrace.go | 69 |
1 files changed, 0 insertions, 69 deletions
diff --git a/library/go/x/xruntime/stacktrace.go b/library/go/x/xruntime/stacktrace.go deleted file mode 100644 index 5c5e661188..0000000000 --- a/library/go/x/xruntime/stacktrace.go +++ /dev/null @@ -1,69 +0,0 @@ -package xruntime - -import ( - "runtime" -) - -type StackTrace struct { - frames []uintptr - full bool -} - -func NewStackTrace16(skip int) *StackTrace { - var pcs [16]uintptr - return newStackTrace(skip+2, pcs[:]) -} - -func NewStackTrace32(skip int) *StackTrace { - var pcs [32]uintptr - return newStackTrace(skip+2, pcs[:]) -} - -func NewStackTrace64(skip int) *StackTrace { - var pcs [64]uintptr - return newStackTrace(skip+2, pcs[:]) -} - -func NewStackTrace128(skip int) *StackTrace { - var pcs [128]uintptr - return newStackTrace(skip+2, pcs[:]) -} - -func newStackTrace(skip int, pcs []uintptr) *StackTrace { - n := runtime.Callers(skip+1, pcs) - return &StackTrace{frames: pcs[:n], full: true} -} - -func NewFrame(skip int) *StackTrace { - var pcs [3]uintptr - n := runtime.Callers(skip+1, pcs[:]) - return &StackTrace{frames: pcs[:n]} -} - -func (st *StackTrace) Frames() []runtime.Frame { - frames := runtime.CallersFrames(st.frames[:]) - if !st.full { - if _, ok := frames.Next(); !ok { - return nil - } - - fr, ok := frames.Next() - if !ok { - return nil - } - - return []runtime.Frame{fr} - } - - var res []runtime.Frame - for { - frame, more := frames.Next() - if !more { - break - } - - res = append(res, frame) - } - - return res -} |