软件调试排错除错工具篇
来源:互联网 发布:vb 校验和程序 编辑:程序博客网 时间:2024/05/16 09:23
1、事先说明:
如果你软件设计整体架构比较优秀,而且软件本身又比较健全的排错机制,大部分情况都可以通过现象和排错日志快速定位出来,那么恭喜你,减少了很多维护软件bug而产生的多余死人的工作量。
2、排错除错使用范围:
2.1 你刚接手别人的一个项目,这个项目的源码结构非常混乱,经手人次也非常多,无法通过简单的阅读代码就可以明白软件的整体结构。或者说:即使了解了软件的整体结构,由于软件设计的不合理,导致软件体系根本就没有 调试框架和层次区分。整个软件的设计就是填充式代码堆积。
2.2 破解别人的无源码的工具情况
3、工具使用
3.1 IDA工具
大家熟知,这个工具主要是用来进行源代码阅读的,调试能力不强。 但是针对某些具体的章节,他可以辅助我们进行源码的理解。 配合Hex-Rays[1].Decompiler.v1.0.for.DataRescue.IDA.Pro.Advanced.v5.2-YAG插进,可以快速的了解代码的功能。
3.2 ollydbg
这个就是调试利器了,强大之处就是:
可以跟踪vc6出现的堆栈跑飞的问题;(所跟踪的堆栈是整个堆栈区的,而并不仅仅是根据堆栈的调用链来显示)
可以通过编写调试脚本进行构造调试条件,直接定位问题所在;
可以通过直接写入eip,跳过某些限制条件(当前这个前提你要了解依赖关系,控制好前后联系);
可以通过写入内存、cpu具体的数值,构造问题发生的条件,直接定位问题
好,我们可以开始干活了。
情况1: 自己写的工具,自己内部使用, 调试关键: 安全性不高,关键是快速定位问题
那么我们可以通过ida和ollydbg打开 我们的发布程序,生成
静态分析信息idb 和
调试信息udd文件夹下的文件。
当然这之前,请先设置
microsoft符号调试文件,
mfc调试符号文件(用于mfc调试情况),
发布程序调试lib的符号文件.
当然如果你发布的时候,如果能够带上这5个文件,配合od调试器当然是完美啦,问题轻松搞定。 我们就希望能够拥有所有的信息来进行问题一次搞定
情况2:
如果你软件设计整体架构比较优秀,而且软件本身又比较健全的排错机制,大部分情况都可以通过现象和排错日志快速定位出来,那么恭喜你,减少了很多维护软件bug而产生的多余死人的工作量。
2、排错除错使用范围:
2.1 你刚接手别人的一个项目,这个项目的源码结构非常混乱,经手人次也非常多,无法通过简单的阅读代码就可以明白软件的整体结构。或者说:即使了解了软件的整体结构,由于软件设计的不合理,导致软件体系根本就没有 调试框架和层次区分。整个软件的设计就是填充式代码堆积。
2.2 破解别人的无源码的工具情况
3、工具使用
3.1 IDA工具
大家熟知,这个工具主要是用来进行源代码阅读的,调试能力不强。 但是针对某些具体的章节,他可以辅助我们进行源码的理解。 配合Hex-Rays[1].Decompiler.v1.0.for.DataRescue.IDA.Pro.Advanced.v5.2-YAG插进,可以快速的了解代码的功能。
3.2 ollydbg
这个就是调试利器了,强大之处就是:
可以跟踪vc6出现的堆栈跑飞的问题;(所跟踪的堆栈是整个堆栈区的,而并不仅仅是根据堆栈的调用链来显示)
可以通过编写调试脚本进行构造调试条件,直接定位问题所在;
可以通过直接写入eip,跳过某些限制条件(当前这个前提你要了解依赖关系,控制好前后联系);
可以通过写入内存、cpu具体的数值,构造问题发生的条件,直接定位问题
好,我们可以开始干活了。
情况1: 自己写的工具,自己内部使用, 调试关键: 安全性不高,关键是快速定位问题
那么我们可以通过ida和ollydbg打开 我们的发布程序,生成
静态分析信息idb 和
调试信息udd文件夹下的文件。
当然这之前,请先设置
microsoft符号调试文件,
mfc调试符号文件(用于mfc调试情况),
发布程序调试lib的符号文件.
当然如果你发布的时候,如果能够带上这5个文件,配合od调试器当然是完美啦,问题轻松搞定。 我们就希望能够拥有所有的信息来进行问题一次搞定
情况2:
0 0
- 软件调试排错除错工具篇
- 软件除错
- Windows用户态程序高效排错 -- 排错的工具:调试器Windbg
- 调试和排错
- 代码大全学习-26-调试除错(Debugging)
- ADB系统除错与连结工具
- 关于软件在操作系统下的IO排错与调试
- pip 安装软件排错
- AD常用排错工具
- 常见AD排错工具
- Oracle排错工具oerr
- MySQL排错工具perror
- 网络常用排错工具
- Linux下C++程序调试及除错方法
- 程序匠人 - 程序调试(除错)过程中的一些雕虫小技
- 《完美软件》笔记5:测试与除错的区别
- 《完美软件》笔记5:测试与除错的区别
- Release版程序调试排错技巧
- 工作的几层境界
- 职业计划发展路线
- 治近视的秘方!1000度近视降到只有200度
- Mac SVN
- 软件调试设计随想
- 软件调试排错除错工具篇
- 英文网站注册常用词汇
- 正则表达式基本语法详解
- MyGui配置编译
- 随谈——java服务器配置(续)
- OO系统设计师之路--分析模型
- OO系统分析员之路--用例分析系列(一)
- OO系统分析员之路--用例分析系列(二)
- pydev安装向导