前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SDL系列讲解(九) 异常退出分析

SDL系列讲解(九) 异常退出分析

作者头像
用户1263308
发布2018-02-02 11:06:53
9010
发布2018-02-02 11:06:53
举报
文章被收录于专栏:代码GG之家

SDL系列讲解(一) 简介

SDL系列讲解(二) 环境搭建

SDL系列讲解(三) 工具安装

SDL是什么,能干什么,为什么我们要学习它?

SDL系列讲解(四) demo讲解

SDL系列讲解(五) 调试c代码

SDL系列讲解(六) SDL_Activity流程

SDL系列讲解(七) SDL_image教程 SDL系列讲解(八) SDL_ttf教程

前言

开发程序,时不时会出现异常,为了解决此问题,我们需要一些分析手段,本文简单的讲解一些调试方法。

有一些截图,原因是一行太长,手机上显示出错。

添加Log

我们打开Android Studio ,连接上手机,这时我们点击界面下方的Android Mintor ,此处会显示出来你的手机,同时输出信息,我们开到右侧有个选项单,默认是Verbose,我们可以展开,进行选择输出过滤。

我们在java源码,可以使用 android.util.Log类提供的一些方法Log.v(TAG, "onCreate()" );除了.v还有.d .e .i .w ,我们直接使用这些方法即可。在c语言中,我们SDL也提供了对应的一套:以SDL_LogXXX形式提供,比如SDL_Log 默认 等同于 SDL_LogInfo 其他的还有SDL_LogVerbose SDL_LogDebug SDL_LogWarn SDL_LogError 我们直接使用测试下。我们在SDLActivity.java的 onCreate 里面,加入一行Log.v("lxm", "onCreate()"); 同时,我们在jni/src/main.c里面的main方法,加入一行:SDL_Log("lxm SDL main enter"); 然后我们运行,同时在Android Monitor,在搜索框中输入lxm,进行过滤,我们可以看到我们添加的log信息。 同时,我们在jni/src/main.c里面的main方法,加入一行: SDL_Log("lxm SDL main enter");然后我们运行,同时在Android Monitor,在搜索框中输入lxm,进行过滤,我们可以看到我们添加的log信息。 异常定位方案 由于自己写的代码,不可避免的出现问题,当程序异常退出的时候,需要定位,找出具体哪个文件的哪一行出现的问题。于是我们进行测试: 我们在jni/src/main.c里面加入一段代码 int *p=0;*p=0;让出现异常,我们继续查看log,这时将Android Monitor菜单的右侧,选择成No Filters,让输出所有信息,同时将中间的类别,选择为Error,我们运行应用,发现退出,看到输出信息: 我们这里关注 Addr2Line 使用 我们点击电脑左下方的Window图标,选择运行... 输入cmd,进入命令行界面,

于是我们知道main.c的47行出现的问题。我们找到代码,看到: 这里可以看到,我在这个文件的47行,做了个空指针赋值操作,引起退出。 Java异常java的异常,比较简单,由于java本身在虚拟机里面运行,在异常的时候,本身输出的信息,就可以定位到问题所在。 直接显示出来出错类型,出错文件和行数,这里为 我们看到这里,text是个空指针,我们使用它的方法,引起异常。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-10-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 代码GG之家 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 添加Log
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档