- 1、本文档共66页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
常用程序调试技巧
?程序错误好比大楼火灾你知道冒烟了,却不知道哪层着火了。从楼顶开始找火源,只能被熏死。看不透浓烟,怎么也找不到火源。
说在前面(1)??本来程序调试是建立在对程序流程理解的基础上,这也是开发过程中对自己程序进行调试的前提。而我要分享的是以另一种调试方法,类似黑客入侵,是假设你不知道程序逻辑的或者出错模块,但是知道故障信息和调试方法。
说在前面(2)?有一种误区:程序调试只是找到程序中的错误。我可以很负责任的告诉你,学好程序调试技术是当黑客的基础,无论是盗取密码、注入病毒、无源码的条件下改变程序行为等等在你看来遥不可及的事情都是以程序调试技术为基础的。?摆脱对程序调试的恐惧、厌烦情绪,其实程序调试是很有趣的。摆脱这种情绪,是提高程序调试水平的前提。
分享内容????程序错误分类调试的禁忌调试的思路调试工具的使用?EXE崩溃的处理办法
程序错误分类(1)?逻辑错误:表现:1、计算结果显示与预期不一致2、程序行为异常(功能非预期)
程序错误分类(2)?程序异常:表现:1、界面元素事件失效2、操作无反应3、错误提示4、EXT框架界面变“大白脸”
程序错误分类(3)?EXE崩溃:表现:1、提示非法操作2、蓝屏(因调用系统级服务)3、弹出调试窗口(如果客户机上注册了JIT调试器)
调试的禁忌????千万不要以阅读代码为调试程序的开始,因为你的大脑不是电脑,不可能像CPU那样执行程序。调试程序不需要事先了解程序流程,首要目的是快速问题定位。别上来就用调试器,因为脚本错误仅仅是表象,要找到引起错误的根源。慎用调试器,调试器是双刃剑!过度使用调试器会陷入如潮水般的错误信息中,就好像黑客跟踪混淆后的程序一样,很可能无功而返。
?好比破解软件,不需要把整个程序反汇编,只需跟踪关键信息。
调试思路?抓住错误信息:发现浓烟(故障表现)? 追踪错误信息的传输流,抽丝剥茧找到问题原因。(找到浓烟的上升通道,而不是进每间屋子去找起火点)? 找到引发错误的原点,仔细调试该方法、修改错误。(找到起火点,定点清除)注意:就好像高楼着火,底层的问题会如同浓烟一般的在楼顶显出。所以,在定位到是脚本本身的问题再开启调试器,否则就会陷入无尽的调试。
调试思路???再现故障故障分段定位问题
调试思路(1)?再现故障1、记录用户的使用环境,如操作系统版本、浏览器种类、版本以及关键设置。2、记录用户的操作步骤、输入参数、频率。3、利用用户的操作步骤在开发机器上再现故障。如果不能再现,可能:1、程序部署不完全2、用户环境问题3、收集的参数信息不完整4、错误数据引起的程序问题
调试思路?故障分段作为经常使用的B/S开发模式,最好的故障分段方法就是以网络作为划分界限。将程序分为:Server端:CSP页面、类方法Browser端:CSP页面,JavaScript
?故障分段使用的软件:HttpWatchProfessional用这个软件干啥?1、分析浏览器传输的数据,找到故障出在Browser端还是Server端。2、收集类方法、Query调用参数,用于下一步在Terminal下调试。3、收集Server端返回数据:校验返回数据,例如JSON串是否合法,判断返回结果是否正确。
HttpWatch未发送数据发送数据正确发送数据错误返回数据正确返回数据错误Browser端Server端图解HttpWatch分析结果对应的故障发生点
HTTPWatch的使用1、安装好HttpWatch2、进入IE,在菜单中选择HttpWatch,或者按【Shift】+【F2】启动HttpWatch
3、按 按钮,HttpWatch开始监听IE的请求。有HTTP错误的【Result】列会标红。选择改行,可以查看具体的页面内容。*代码404代表页面没找到,出现这种错误一般见于脚本路径错误。*这种问题一般会引起界面元素无反应(事件响应失灵),Ext界面会变“白脸”显示不出内容等现象。
【Method】列,POST的行,代表提交数据,可以选择改行,查看提交的参数,服务器返回的数据。【URL】列,代表访问的页面。【POSTData】页签,可以查看提交的参数。【Content】页签,可以查看服务器响应的页面内容。
在Chrome中如何操作?方法:1、按【F12】,启动调试工具2、选择【Network】页签3、刷新页面
在Chrome中如何操作?4、点击一行,可以看到提交的信息以及服务器的响应信息。
在FireFox中如何操作?方法:1、按【F12】启动调试工具2、选择【网络】页签3、按【重新载入】按钮4、其它同Chrome
在FireFox中如何操作?
【
文档评论(0)