多线程core分析
问题描述:
如果现场的数据库core了,利用gdb进行分析时有多个thread,没法确定哪个thread才是真正core的?
分析与解决方法:
kingbase 提供了HandleCrash函数,该函数被注册为一个信号处理函数,用来处理:SIGILL,SIGBUS,SIGSEGV等信号,其子函数:StandardHandlerForSigillSigsegvSigbus_OnMainThread 用来收集堆栈信息,进程信息,并且将他们写入管道中。如果现场中需要gdb重定向,需要以下方法:
set logging file <file name> set logging on info threads thread n info functions set logging off
然后将对应的filename拷贝回来。