Window,Linux应用程序调试法----写文件调试程序法
Linux,一切皆文件,那么在Android系统本身,也是Linux+java罢了,也是在Linux的运行环境下。
通常,我们在调试程序的都会使用printf。
在Android中,我们会去使用logcat,现在,给大家介绍一种常用的调试方法,debug写文件调试法。
在Android系统中,调试一个C应用程序可谓是极其不方便,为了保存log的完整性,于是,写文件调试法可以发挥重大的作用,下面给出一个例子:
#include <stdio.h> FILE * wirte_debug_file=NULL; //将调试信息写到文件中 void write_Debug_to_file(char *debug_log) { if(wirte_debug_file==NULL) wirte_debug_file = fopen("debug.txt","wt"); if(wirte_debug_file==NULL) return; fputs(debug_log,wirte_debug_file); } int main(void) { int i ; char buf[100]; for(i = 0 ; i < 10 ; i++) { sprintf(buf,"i:%d\n",i); //写调试信息 write_Debug_to_file(buf); } if(wirte_debug_file != NULL) fclose(wirte_debug_file); return 0 ; }运行结果:
我们打开debug.txt后,可以看到:
i:0
i:1
i:2
i:3
i:4
i:5
i:6
i:7
i:8
i:9
打印的数据被保存在这个文件中,甚至,我们可以将代码段执行到哪一句都可以写到log中去,回头再来分析问题。
这是一种非常好的调试手段。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Android 构成垄断了吗? 是的
近日,美国反垄断监管机构开始调查谷歌(微博)Android操作系统是否存在反竞争行为。肯定会有一些人会问,Android真的构成垄断了吗? 谷歌本身不制造手机,它也没有逼迫任何人使用Android——是手机制造商自己选择了在手机上搭载这个软件。谷歌对Android并没有百分之百 的控制权,举例来说,数以亿计的Android智能手机在中国销售,既没有得到谷歌的“祝福”,手机上也没有谷歌的应用。Android是开源的,与 之相对的是封闭的苹果iOS,两者在美国市场进行着健康的、势均力敌的竞争。谷歌Android占有59%的市场份额,苹果iOS占有38%。从消费者的角度来看,这是一场公平的竞争,并不涉及垄断。 谷歌拥有发言权的主要地方是,它可以决定哪些设备能搭载谷歌应用和服务。如果你把这叫作垄断,那么这也是一种很公平的垄断:如果你投入了时间和金钱来开发 Gmail、Chrome浏览器、谷歌地图和YouTube这些复杂的应用,那么你就应该有权决定谁能使用它们。但是,当你考虑到谷歌最重要的应用时,事 情就变得更加有趣了——这个应用就是谷歌Play Store应用商店。它是Android应用的一个...
- 下一篇
Objective-C 杂志发布四月 Android 特刊
在线杂志objc.io本来是专注于Objective-C技术/iOS开发,但四月一期的主题却是Android开发。编辑称,Android特刊的起因是愚人节玩笑,但随后意识到iOS开发者会感兴趣了解另一个主要平台如何进行开发。本期刊登的文章《Android 101》展现了Objective-C和Java在应用程序结构上的差异;《Android Intents》展现了Android能更容易的在一个程序中启动另一个程序或共享内容,以拍照分享为例,Android的步骤就比iOS少几步;Android没有Core Data,它的数据库客户端使用的是SQLite;等等。 文章转载自 开源中国社区 [http://www.oschina.net]
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- MySQL8.0.19开启GTID主从同步CentOS8
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Hadoop3单机部署,实现最简伪集群
- CentOS8安装Docker,最新的服务器搭配容器使用
- Docker快速安装Oracle11G,搭建oracle11g学习环境