如何实现crash堆栈抓取、crash回调?

如何实现crash堆栈抓取、crash回调

阅读 379
1 个回答

可以使用faultLogger.querySelfFaultLog获取故障日志,可以抓取C++程序故障、JS程序故障类型、应用程序卡死故障,获取分析故障进程的进程id、故障进程的用户id、故障类型、日志生成时的秒级时间戳、发生故障的原因、发生故障的模块、故障的概要和故障日志全文。可参考以下示例代码:

import { FaultLogger } from '@kit.PerformanceAnalysisKit'; 
import { BusinessError } from '@kit.BasicServicesKit' 
 
async function getLog() { 
  try { 
    let value: Array<FaultLogger.FaultLogInfo> = await FaultLogger.query(FaultLogger.FaultType.JS_CRASH); 
    if (value) { 
      console.info("value length is " + value.length); 
      let len: number = value.length; 
      for (let i = 0; i < len; i++) { 
        console.info("log: " + i); 
        console.info("Log pid: " + value[i].pid); 
        console.info("Log uid: " + value[i].uid); 
        console.info("Log type: " + value[i].type); 
        console.info("Log timestamp: " + value[i].timestamp); 
        console.info("Log reason: " + value[i].reason); 
        console.info("Log module: " + value[i].module); 
        console.info("Log summary: " + value[i].summary); 
        console.info("Log text: " + value[i].fullLog); 
      } 
    } 
  } catch (err) { 
    console.error(`code: ${(err as BusinessError).code}, message: ${(err as BusinessError).message}`); 
  } 
}

参考链接

@ohos.faultLogger (故障日志获取)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进