当前位置:文档之家› 常用程序调试技巧

常用程序调试技巧


Browser 端
Server端
HTTP Watch的使用
1、安装好HttpWatch 2、进入IE,在菜单中选择HttpWatch,或者 按【Shift】+【F2】启动HttpWatch
3、按 按钮,HttpWatch开始监听IE的请求。 有HTTP错误的【Result】列会标红。选择改 行,可以查看具体的页面内容。
别上来就用调试器,因为脚本错误仅仅是表象, 要找到引起错误的根源。
慎用调试器,调试器是双刃剑!过度使用调试 器会陷入如潮水般的错误信息中,就好像黑客 跟踪混淆后的程序一样,很可能无功而返。
好比破解 软件,不 需要把整 个程序反 汇编,只 需跟踪关 键信息。
调试思路
抓住错误信息:发现浓烟(故障表现) 追踪错误信息的传输流,抽丝剥茧找到问题原
*代码404代表页 面没找到,出现这 种错误一般见于脚 本路径错误。
*这种问题一般会 引起界面元素无反 应(事件响应失 灵),Ext界面会 变“白脸”显示不 出内容等现象。
【Method】列,POST的行,代 表提交数据,可以选择改行, 查看提交的参数,服务器返回 的数据。 【URL】列,代表访问的页面。
分享内容
程序错误分类 调试的禁忌 调试的思路 调试工具的使用 EXE崩溃的处理办法
程序错误分类(1)
逻辑错误: 表现: 1、计算结果显示与预期不一致 2、程序行为异常(功能非预期)
程序错误分类(2)
程序异常: 表现: 1、界面元素事件失效 2、操作无反应 3、错误提示 4、EXT框架界面变“大白脸”
3、使用工具:调试器 (1)利用堆栈调用查看出问题的函数以及先 后调用关系。
(2)在堆栈,从上至下检查每级函数调用的 参数及返回值,找到出现故障的函数。
例如:
程序错误分类(3)
EXE崩溃: 表现: 1、提示非法操作 2、蓝屏(因调用系统级服务) 3、弹出调试窗口(如果客户机上注册了JIT调 试器)
调试的禁忌
千万不要以阅读代码为调试程序的开始,因为 你的大脑不是电脑,不可能像CPU那样执行程 序。
调试程序不需要事先了解程序流程,首要目的 是快速问题定位。
常用程序调试技巧
程序错误好比大楼火灾
(1)你知道冒烟了,却不 知道哪层着火了。
(2)从楼顶开始找火源, 只能被熏死。
(3)看不透浓烟,怎么也 找不到火源。
说在前面(1)
本来程序调试是建立在对程序流程理解的 基础上,这也是开发过程中对自己程序进 行调试的前提。
而我要分享的是以另一种调试方法,类似 黑客入侵,是假设你不知道程序逻辑的或 者出错模块,但是知道故障信息和调试方 法。
因。(找到浓烟的上升通道,而不是进每间屋 子去找起火点) 找到引发错误的原点,仔细调试该方法、修改 错误。(找到起火点,定点清除) 注意: 就好像高楼着火,底层的问题会如同浓烟一般 的在楼顶显出。所以,在定位到是脚本本身的问 题再开启调试器,否则就会陷入无尽的调试。
调试思路
再现故障 故障分段 定位问题
调试思路
故障分段 作为经常使用的B/S开发模式,最好的故障分 段方法就是以网络作为划分界限。将程序分 为: (1)Server端:CSP页面、类方法 (2)Browser端:CSP页面,JavaScript
故障分段使用的软件:
HttpWatch Professional
用这个软件干啥?
1、分析浏览器传输的数据,找到故障出在 Browser端还是Server端。
调试思路(1)
再现故障 1、记录用户的使用环境,如操作系统版本、浏 览器种类、版本以及关键设置。 2、记录用户的操作步骤、输入参数、频率。 3、利用用户的操作步骤在开发机器上再现故障。 如果不能再现,可能: 1、程序部署不完全 2、用户环境问题 3、收集的参数信息不完整 4、错误数据引起的程序问题
说在前面(2)
有一种误区:程序调试只是找到程序中的 错误。我可以很负责任的告诉你,学好程 序调试技术是当黑客的基础,无论是盗取 密码、注入病毒、无源码的条件下改变程 序行为等等在你看来遥不可及的事情都是 以程序调试技术为基础的。
摆脱对程序调试的恐惧、厌烦情绪,其实 程序调试是很有趣的。摆脱这种情绪,是 提高程序调试水平的前提。
【POST Data】页签,可以查看 提交的参数。
【Content】页签,可以查看服 务器响应的页面内容。
在Chrome中如何操作?
方法: 1、按【F12】,启动调试工具 2、选择【Network】页签 3、刷新页面
在Chrome中如何操作?
4、点击一行,可以看到提交的信息以及服务 器的响应信息。
2、收集类方法、Query调用参数,用于下一 步在Terminal下调试。
3、收集Server端返回数据:校验返回数据, 例如JSON串是否合法,判断返回结果是否正 确。
图解HttpWatch分析结果对应的故障发生点
HttpWatc h
未发送数据 发送数据正确 发送数据错误 返回数据正确 返回数据错误
在FireFox中如何操作?
方法: 1、按【F12】启动调试工具 2、选择【网络】页签 3、按【重新载入】按钮 4、其它同Chrome
在FireFox中如何操作?
在FireFox中如何操作?
【参数】页签,可以查阅提交(POST) 的参回 的信息。
调试思路(2)
定位问题 在上一步中,我们找到了故障的分段情况, 在这个步骤,要定位问题。 1、如果是Server端的故障,利用HttpWatch 收集到的参数,找到对应的类方法或Query, 然后到Terminal和Studio中进行调试,方法这 里不再赘述。 2、如果是Browser端的故障,则需要缩小排 查范围。
定位问题的方法 1、利用HttpWatch找到页面加载的JS文件 (排除系统自带的以及本组公用的JS)。 2、利用HttpWatch检查页面需要的JS文件是 否正确下载。 (1)路径错误,HTTP错误代码:404。 (2)路径错误,引用了别的文件。 (3)没清缓存,还是原来错误的JS内容。
定位问题的方法:
相关主题