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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章