本文主要是介绍cgo crash 捕获 go 调用栈、 c 调用栈,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
鱼与熊掌无法兼得
暂时没有找到调用栈中,同时显示 go 、 c 相关函数
但是,发现 go 程序因 cgo 抛异常 crash 时,可以分别捕获各自的函数调用栈
go 调用栈
go 程序 crash 时,会向 stderr 打印所有 go 协程调用栈信息
因此只要捕获这些信息到文件即可
然后用关键字cgocall
定位日志
c 调用栈
可以用 gdb 直接从 coredump 文件中获取
例子
本人简单写了一个测试例子:
github: https://github.com/fananchong/test_cgo_coredump
后记
鱼与熊掌可以兼得
github: https://github.com/fananchong/test_cgo_coredump 中已经更新最新的,完美捕获 core 文件
这篇关于cgo crash 捕获 go 调用栈、 c 调用栈的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!