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中去,回头再来分析问题。
这是一种非常好的调试手段。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接
相关推荐
-
用bat实现删除系统脚本调试程序
删除一些危险的对象,从根本上解决问题.这些对象对普通用户是没什么用的. 1)禁用WSHShell对象,阻止运行程序. 删除或更名系统文件夹中的wshom.ocx 或删除注册表项: HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{F935DC22-1CF0-11D0-ADB9-00C04FD58A0B} 2)禁用FileSystem对象,阻止读写文件. 删除或更名系统文件夹中的scrrun.dll 或删除注册表项: HKEY_LOCAL_MACHINE\SOF
-
Android开发笔记之:一分钟学会使用Logcat调试程序的详解
这是个很简单的问题,但每次隔一段时间后使用起来总是会出点乱子.这里记录下Logcat的步骤:1,在Activity里申明tag变量(名字其实是随便的,如下:private static final String tag="yan";2,需要使用logcat输出信息时:Log.i(tag, "屏幕宽度:"+display.getWidth()+" 屏幕高度:"+display.getHeight());3, 双击Logcat,点击"+&q
-
IOS 使用NSAssert()和NSParameterAssert调试程序
IOS 使用NSAssert()和NSParameterAssert调试程序 NSAssert: NSAssert()只是一个宏,用于开发阶段调试程序中的Bug,通过为NSAssert()传递条件表达式来断定是否属于Bug,满足条件返回真值,程序继续运行,如果返回假值,则抛出异常,并切可以自定义异常描述.NSAssert()是这样定义的: #define NSAssert(condition, desc) condition是条件表达式,值为YES或NO:desc为异常描述,通常为NSStrin
-
ubuntu用wifi连接android调试程序的步骤
注:如果没有 root 权限也是可以试试,一般情况下,都需要 root 权限,才能连接成功. 1.需要确保你的开发 PC 和 Android 手机都连上了 wifi 并处于同一网段下:2.开启 usb 调试,且用 usb 将 Android 设备连接到开发 PC 上:3.进入到你的 Android SDK 的 platform-tools 目录下,执行如下命令来重启 Android 设备中的 adbd 后台程序重新侦听 TCP 的指定端口:$./adb tcpip 5555注:5555 是默认端
-
Java关于远程调试程序教程(以Eclipse为例)
本节尝试一下Java远程调试的东西,记录一遍简单入门的东西.也就算是使用记录吧! 写一个简单程序打成jar丢到远程服务器运行,模拟远程Server在运行.就拿Java调用shell脚本提交作业程序为例分析.源码如下(如下程序就是一个简单示例代码,不要在乎代码规范): import java.io.InputStream; public class JavaShell { public static void main(String[] args) throws Exception { try {
-
C#中利用断点操作调试程序的步骤详解
Visual Studio调试器调试 我们大家都知道,当代码不能正常运行时,可以通过调试定位错误.常用的程序调试操作包括设置断点.开始.中断和停止程序的执行.单步执行程序以及使程序运行到指定的位置.下面将对这几种常用的程序调试操作进行详细地介绍.话不多说了,来一起看看详细的介绍吧. 1.断点操作 断点通知调试器,使应用程序在某点上(暂停执行)或某情况发生时中断.发生中断时,称程序和调试器处于中断模式.进入中断模式并不会终止或结束程序的执行,所有元素(如函数.变量和对象)都保留在内存中.执行可以在
-
asp下调试程序的debug类
ASP中最头疼的就是调试程序的时候不方便,我想可能很多朋友都会用这样的方法"response.write ",然后输出相关的语句来看看是否正确.前几天写了一个千行的页面,里面大概有七八个SUB/FUNCTION,调试的时候用了有三十几个 response.write ,天,调试完后把这三十个一个个删除,累! 今天看到一个ASP中的Debug类(VBS),试用了一下,绝! 使用方法很简单: test.asp <!--#INCLUDE FILE="debuggingCons
-
asp:debug类调试程序
ASP中最头疼的就是调试程序的时候不方便,我想可能很多朋友都会用这样的方法"response.write ",然后输出相关的语句来看看是否正确.前几天写了一个千行的页面,里面大概有七八个SUB/FUNCTION,调试的时候用了有三十几个 response.write ,天,调试完后把这三十个一个个删除,累! 今天看到一个ASP中的Debug类(VBS),试用了一下,绝! 使用方法很简单: test.asp <!--#INCLUDE FILE="debuggingCons
-
Python中使用PDB库调试程序
Python自带的pdb库,发现用pdb来调试程序还是很方便的,当然了,什么远程调试,多线程之类,pdb是搞不定的. 用pdb调试有多种方式可选: 1. 命令行启动目标程序,加上-m参数,这样调用myscript.py的话断点就是程序的执行第一行之前 复制代码 代码如下: python -m pdb myscript.py 2. 在Python交互环境中启用调试 复制代码 代码如下: >>> import pdb >>> import mymodule >>
-
Linux应用程序使用写文件调试程序的方法
Linux,一切皆文件,那么在Android系统本身,也是Linux+java罢了,也是在Linux的运行环境下. 通常,我们在调试程序的都会使用printf. 在Android中,我们会去使用logcat,现在,给大家介绍一种常用的调试方法,debug写文件调试法. 在Android系统中,调试一个C应用程序可谓是极其不方便,为了保存log的完整性,于是,写文件调试法可以发挥重大的作用,下面给出一个例子: #include <stdio.h> FILE * wirte_debug_file=
-
Linux下对各种压缩文件的处理方法
Linux下最常用的打包程序就是tar了,使用tar程序打出来的包我们常称为tar包,tar包文件的命令通常都是以.tar结尾的.生成tar包后,就可以用其它的程序来进行压缩了,所以首先就来讲讲tar命令的基本用法: tar命令的选项有很多(用man tar可以查看到),但常用的就那么几个选项,下面 来举例说明一下: # tar -cf all.tar *.jpg 这条命令是将所有.jpg的文件打成一个名为all.tar的包.-c是表示产生新的包,-f指定包的文件名. # tar -rf all
-
linux tar压缩排除某个文件夹的方法
一般直接用tar命令打包很简单,直接使用 tar -zcvf test.tar.gz test 即可. 在很多时候,我们要对某一个目录打包,而这个目录下有几十个子目录和子文件,我们需要在打包的时候排除其中1.2个目录或文件. 这时候我们在用tar命令打包的时候,增加参数 --exclude 就能达到目的. 例如: 我们以tomcat 为例,打包的时候我们要排除 tomcat/logs 目录,命令如下: tar -zcvf tomcat.tar.gz --exclude=tomcat/logs t
-
linux下上传下载文件夹的方法
Linux下目录复制:本机->远程服务器 scp -r /home/shaoxiaohu/test1 zhidao@192.168.0.1:/home/test2 test1为源目录,test2为目标目录,zhidao@192.168.0.1为远程服务器的用户名和ip地址. Linux下目录复制:远程服务器->本机 scp -r zhidao@192.168.0.1:/home/test2 /home/shaoxiaohu/test1 zhidao@192.168.0.1为远程服务器的用户名和
-
小程序封装路由文件和路由方法(5种全解析)
小程序5种路由方法使用场景,封装路由文件和路由方法,提升小程序体验和开发效率 明确要解决的问题 每次使用路由时,总是粘贴复制路径,这样在路径有修改时,需要修改所有用到该路径的地方,维护成本高 路由跳转时拼接参数让人头大,业务复杂时要拼接十几个参数 路由返回,只会返回一层,不能直接返回到目标页面,因为不知道目标页面是否在路由栈中,也不知道在第几层 这些问题都可以通过封装路由文件和路由方法解决,提供开发效率,减少BUG,省下来的时间可以多陪陪女朋友 封装路由文件,对路由进行统一管理 在根目录创建ro
-
C++程序员操作文件对话框的方法
目录 1.调用GetOpenFileName接口启动打开文件对话框 1.1.OPENFILENAME结构体说明 1.2.设置支持文件多选,控制选择文件的个数上限 1.3.从OPENFILENAME结构体的lpstrFile字段解析出用户选择的文件的完整路径 2.调用GetSaveFileName接口启动保存文件对话框 3.调用SHBrowseForFolder接口打开浏览文件夹对话框 4.最后 在C++程序中有时需要通过系统的文件对话框去操作文件或者文件夹,我们有必要熟练掌握操作文件对话框的细节
-
Linux下如何对ISO文件编辑的方法示例
前言 我们知道 Windows下有类似 UltraISO的这样的软件可以用来编辑 ISO文件,可引导 ISO也没有问题.近来在 Linux下玩的比较多,正好要改个 ISO,于是就开始找 Linux下有没有类似的软件. Ubuntu软件中心里有一款叫 ISOMaster的软件,可以创建和修改 ISO文件. $ sudo apt-get install isomaster 如图,我打开一个 ISO文件以后就可以直接用过右键菜单来修改 ISO中的文本内容. ISOMaster 好了,你是不是觉得可以通
-
在Python程序中操作文件之flush()方法的使用教程
flush()方法刷新内部缓冲区,像标准输入输出的fflush.这类似文件的对象,无操作. Python关闭时自动刷新文件.但是可能要关闭任何文件之前刷新数据. 语法 以下是flush()方法的语法: fileObject.flush(); 参数 NA 返回值 此方法不返回任何值. 例子 下面的例子显示了flush()方法的使用. #!/usr/bin/python # Open a file fo = open("foo.txt", "wb") print &qu
-
在Python程序中操作文件之isatty()方法的使用教程
如果文件已连接(与终端设备相关联)到一个tty(状)的设备,isatty()方法返回True,否则返回False. 语法 以下是isatty()方法的语法: fileObject.isatty(); 参数 NA 返回值 如果该文件被连接(与终端设备相关联)到一个tty(类似终端)设备此方法返回true,否则返回false. 例子 下面的例子显示了isatty()方法的使用. #!/usr/bin/python # Open a file fo = open("foo.txt", &qu
-
5种解决Java独占写文件的方法
本文实例讲解了5种解决Java独占写文件的方法,包含自己的一些理解,如若有不妥的地方欢迎大家提出. 方案1:利用RandomAccessFile的文件操作选项s,s即表示同步锁方式写 RandomAccessFile file = new RandomAccessFile(file, "rws"); 方案2:利用FileChannel的文件锁 File file = new File("test.txt"); FileInputStream fis = new Fi
随机推荐
- Serv-U得到管理员密码新招 (转)
- Java实现表单提交(支持多文件同时上传)
- 在Python程序中实现分布式进程的教程
- JavaScript使用cookie
- php简单实现数组分页的方法
- php使用wordwrap格式化文本段落的方法
- php中file_exists函数使用详解
- php获取从百度搜索进入网站的关键词的详细代码
- C#获取指定文件著作权信息的方法
- 详细介绍C#之文件校验工具的开发及问题
- Ubuntu系统安装Ruby语言的三种方法
- java.net.ConnectException: Connection refused问题解决办法
- 理解java设计模式之建造者模式
- Android仿Iphone屏幕底部弹出半透明PopupWindow效果
- 简单介绍C++中变量的引用
- edittext + listview 实现搜索listview中的内容方法(推荐)
- java 整型数与Integer的缓存深入理解
- 基于BootStarp的Dailog
- C#操作IIS程序池及站点的创建配置实现代码
- node结合swig渲染摸板的方法