c/debug: StackTrace
This commit is contained in:
26
c/debug/_demo/stacktrace/main.go
Normal file
26
c/debug/_demo/stacktrace/main.go
Normal file
@@ -0,0 +1,26 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"unsafe"
|
||||
|
||||
"github.com/goplus/llgo/c/debug"
|
||||
)
|
||||
|
||||
type T struct {
|
||||
n int
|
||||
}
|
||||
|
||||
func (t *T) Demo() {
|
||||
println(t.n)
|
||||
debug.StackTrace(0, func(fr *debug.Frame) bool {
|
||||
var info debug.Info
|
||||
debug.Addrinfo(unsafe.Pointer(fr.PC), &info)
|
||||
println("[", fr.PC, "]", fr.Name, "+", fr.Offset, ", SP =", fr.SP)
|
||||
return true
|
||||
})
|
||||
}
|
||||
|
||||
func main() {
|
||||
t := &T{100}
|
||||
t.Demo()
|
||||
}
|
||||
Reference in New Issue
Block a user