校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識(shí)庫 > Golang捕獲panic堆棧信息的講解

Golang捕獲panic堆棧信息的講解

熱門標(biāo)簽:南通如皋申請(qǐng)開通400電話 廣州呼叫中心外呼系統(tǒng) 高德地圖標(biāo)注口訣 學(xué)海導(dǎo)航地圖標(biāo)注 地圖標(biāo)注的汽車標(biāo) 浙江高速公路地圖標(biāo)注 江西轉(zhuǎn)化率高的羿智云外呼系統(tǒng) 西部云谷一期地圖標(biāo)注 中國地圖標(biāo)注省會(huì)高清

golang當(dāng)中panic的時(shí)候如果啟動(dòng)的goroutine比較多,刷的信息滿屏都是,在終端工具上因?yàn)樗⒌男畔⑻啵也坏角斑叺男畔ⅲ虼撕苡斜匾绦蜃约翰东@panic,并且將錯(cuò)誤信息輸出到文件當(dāng)中,以便定位排查問題。

Golang捕獲panic堆棧信息

func PanicTrace(kb int) []byte {
  s := []byte("/src/runtime/panic.go")
  e := []byte("\ngoroutine ")
  line := []byte("\n")
  stack := make([]byte, kb10) //4KB
  length := runtime.Stack(stack, true)
  start := bytes.Index(stack, s)
  stack = stack[start:length]
  start = bytes.Index(stack, line) + 1
  stack = stack[start:]
  end := bytes.LastIndex(stack, line)
  if end != -1 {
    stack = stack[:end]
  }
  end = bytes.Index(stack, e)
  if end != -1 {
    stack = stack[:end]
  }
  stack = bytes.TrimRight(stack, "\n")
  return stack
}

該函數(shù)的優(yōu)點(diǎn):

  • 比直接recover()捕獲的panic信息更加詳盡
  • 比直接放任其panic打印的堆棧信息更精準(zhǔn),第一行就是發(fā)生panic的代碼行
  • 比直接放任其panic打印的堆棧信息更簡(jiǎn)潔,可以指定信息量(kb)

最后注意,如果是啟動(dòng)的多goroutine,需要在每個(gè)goroutine執(zhí)行函數(shù)的時(shí)候,寫上defer PanicHandler() 否則的話是捕獲不到其他goroutine當(dāng)中的painc信息的。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接

您可能感興趣的文章:
  • golang panic及處理機(jī)制

標(biāo)簽:曲靖 貴州 吐魯番 保定 東營 許昌 常州 德宏

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Golang捕獲panic堆棧信息的講解》,本文關(guān)鍵詞  Golang,捕獲,panic,堆棧,信息,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Golang捕獲panic堆棧信息的講解》相關(guān)的同類信息!
  • 本頁收集關(guān)于Golang捕獲panic堆棧信息的講解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 且末县| 丽江市| 通河县| 乌审旗| 苍梧县| 邻水| 普宁市| 苏尼特左旗| 开阳县| 萨嘎县| 西林县| 东源县| 冷水江市| 三台县| 新丰县| 台州市| 新泰市| 井陉县| 扶绥县| 久治县| 卢湾区| 丹棱县| 阿坝县| 万全县| 随州市| 隆昌县| 方城县| 洛扎县| 特克斯县| 扶绥县| 清涧县| 工布江达县| 广灵县| 芷江| 卓尼县| 崇州市| 博野县| 米脂县| 乳山市| 定南县| 赤城县|