cocos2d-x 安卓 ios崩溃dump

在安卓和ios平台上可通过信号处理方式,在崩溃时打印Lua堆栈信息,方便分析bug

static void dumpHandler(int cause, siginfo_t * info, void *uap)
{
    CCLOG("Crash dump:");
    CCLuaEngine* pEngine = CCLuaEngine::defaultEngine();
    me_traceStack(pEngine->getLuaStack()->getLuaState());
    exit(1);
}

static void setupCrashReport()
{
 struct sigaction sa;
    sa.sa_sigaction = dumpHandler;
    sigemptyset (&sa.sa_mask);
    sa.sa_flags = SA_SIGINFO;
 for (int i=0; i<kNumSignals; ++i)
 {
  if (sigaction(kSignals[i], &sa, NULL) == -1)
   CCLOG("sigaction [%d] failed", i);
 }
    if (sigaction (SIGSEGV, &sa, 0)) {
  CCLOG("setup sigaction");
 }
}

#define SETUP_CRASH_REPORT() {setupCrashReport();}

void me_traceStack (lua_State *L) {
    lua_print(L);

    int level;
    lua_Debug ar;
    std::string t;
    char buff[1024];

    for (level = 1; level<11; ++level)
    {
        if (lua_getstack(L, level, &ar))
        {
            lua_getinfo(L, "Snl", &ar);
            sprintf(buff, "frame %d \n%s :%d in function [%s], %d\n", level, ar.short_src, ar.currentline, ar.name, ar.linedefined);
            t += buff;
        }
        else
        {
            sprintf(buff, "frame %d \nunknown\n", level);
            t += buff;
        }
    }
    CCLOG("Lua frame stack:\n%s", t.c_str());
}
时间: 2024-10-10 16:02:59

cocos2d-x 安卓 ios崩溃dump的相关文章

安卓ios和angularjs相互调用解决首次调用ios传递标题失败的问题

1.angular 调用客户端方法放在 try catch中 try { js_invoke.showShareDialog(angular.toJson(obj));  // 在这里放客户端的方法即可 } catch(e) { console.log('Recommend share',obj); } 2.客户端调用angular的方法,注意方法需全局可以才能正常调用 在首页index.html中声明方法 var goBack = function() { return false }; 在具

IOS崩溃日志解析(crash log)

IOS的应用程序少不了crash,互联网统计分析工具友盟有一项目错误分析的功能,专门用于应用程序崩溃日志统计,最近研究友盟上统计到的崩溃日志,在此对崩溃日志做一个简单的总结. IOS崩溃日志分类: 一.低内存崩溃:IOS设备检测到低内存时,虚拟内存系统发出通知请求应用释放内存.这些通知发送到所有正在运行的应用和进程,试图收回一些内存.如果内存使用依然居高不下,系统将会终止后台线程以缓解内存压力.如果可用内存足够,应用将能够继续运行而不会产生崩溃报告.否则,应用将被iOS终止,并产生低内存崩溃报告

iOS崩溃日志

今天看crash report ,有这样两个crash: 调用 stopUpdatingLocation 函数的是一个CLLocationManager 类型的对象,为什么报错的时候会把这个对象转成NSConcerteAttributedString类型? 调用getEsubmissionResult方法的是一个UIViewController类型的对象,为什么会转成_NSCFString类型? iOS崩溃日志 >> ios 这个答案描述的挺清楚的:http://www.goodpm.net/

转: iOS崩溃堆栈符号表使用与用途

转:http://bugly.qq.com/blog/?p=119 iOS崩溃堆栈符号化,定位问题分分钟搞定! 2015.3.16 腾讯Bugly 微信分享 最近一段时间,在跟开发者沟通过程中,萝莉发觉大家对iOS的应用符号表还不是很清楚,除了咨询关于符号表生成.配置的问题以外,对Bugly崩溃分析需要配置符号表也存在疑问. 在这里,萝莉就给大家分享下关于iOS符号表的一些内容. 首先,进行常识“脑补”. 1. 符号表是什么? 符号表就是指在Xcode项目编译后,在编译生成的二进制文件.app的

ios 崩溃日志揭秘

http://www.raywenderlich.com/zh-hans/30818/ios%E5%BA%94%E7%94%A8%E5%B4%A9%E6%BA%83%E6%97%A5%E5%BF%97%E6%8F%AD%E7%A7%98 0x8badf00d: 读做 "ate bad food"! (把数字换成字母,是不是很像 :p)该编码表示应用是因为发生watchdog超时而被iOS终止的.  通常是应用花费太多时间而无法启动.终止或响应用系统事件. 0xbad22222: 该编码

.net&#160;安卓IOS跨平台des加解密双向的(可以互相加解密)

1 #region 跨平台加解密(c# 安卓 IOS) 2 3 // public static string sKey = "12345678"; 4 5 // /// 6 7 // /// 解密 8 9 // /// 10 11 // /// 要解密的以Base64 12 13 // /// 密钥,且必须为8位 14 15 // /// 已解密的字符串 16 17 // public static string DesDecrypt(string pToDecrypt) 18 19

iOS崩溃堆栈信息的符号化解析

最近一段时间,在iOS开发调试过程中以及上线之后,程序经常会出现崩溃的问题.简单的崩溃还好说,复杂的崩溃就需要我们通过解析Crash文件来分析了,解析Crash文件在iOS开发中是比较常见的.但在跟开发者沟通过程中,云捕小编发觉大家对iOS的应用符号表还不是很清楚. 现在网上有很多关于解析崩溃堆栈信息的符号化的博客,但是大多质量参差不齐,或者有些细节没有注意到.今天总结一下对iOS崩溃符号化的使用和技巧: 一.场景 当我们收集iOS的崩溃信息时,获取到的崩溃堆栈一般是如下的形式,全是十六进制的内

Thinkphp5新版聚合VIP影视APP源码 安卓/IOS苹果双端,非常棒的一款在线视频VIP解析

Thinkphp5新版聚合VIP影视APP源码 安卓/IOS苹果双端,非常棒的一款在线视频VIP解析APP,代理裂变版下载地址:Q1013175107这套系统,我是开发者,外面都是乐色,后门无数.不信可以找我测试,秒进后台.删库跑路最新更新日志用户注册可以去除短信注册或保留新用户点击观影区直接跳登录页(不会弹出会员已过期)增加了观看记录增加成10条解析,最新电影页可以在后台添加,美化直播大厅,美化会员中心,独家可以切换会员中心风格 本套源码特色一.此版本为原生双端APP:(安卓+苹果)二.后台支

点击复制文字到剪贴板兼容性安卓ios

一般那种活动H5分享可能会用到点击复制文字到剪贴板,很简单的功能 于是搜了一搜:js复制文字到剪贴板,可用结果大致分为两类: 一类是js原生方法,这种方法兼容性不好,不兼容ios: https://developer.mozilla.org/en-US/docs/Web/API/Document/execCommand 另外,还有一些坑要注意 input/textarea为disabled不可用(readonly可以) input/textarea为hidden不可用 try{ var copy