一、Python
import traceback
def function1():
traceback.print_stack()
return "function1"
def function2():
function1()
return
if __name__ == '__main__':
function2()
# File "test.py", line 12, in <module>
# function2()
# File "test.py", line 8, in function2
# function1()
# File "test.py", line 4, in function1
# traceback.print_stack()
在需要了解的函数里面添加 traceback.print_stack()
即可打印其调用栈信息。
二、 golang
package main
import (
"fmt"
"runtime/debug"
)
func main() {
function2()
fmt.Println("main")
}
func function1() {
debug.PrintStack()
fmt.Println("function1")
}
func function2() {
function1()
fmt.Println("function2")
}
# goroutine 1 [running]:
# runtime/debug.Stack(0x40d589, 0xc42000e1d0, 0x10)
# /usr/lib/go-1.10/src/runtime/debug/stack.go:24 +0xa7
# runtime/debug.PrintStack()
# /usr/lib/go-1.10/src/runtime/debug/stack.go:16 +0x22
# main.function1()
# /home/zyt/go/src/github.com/zyt312074545/test/main.go:14 +0x22
# main.function2()
# /home/zyt/go/src/github.com/zyt312074545/test/main.go:19 +0x22
# main.main()
# /home/zyt/go/src/github.com/zyt312074545/test/main.go:9 +0x22
# function1
# function2
# main
在需要了解的函数里面添加 debug.PrintStack()
即可打印其调用栈信息。