• 编程中若干调试方法总结


      最近和同事在解决一个定时任务的问题,搞了两三天没搞定,但是最终程序还是能够正常运行了。期间有一些定位问题的方法,感觉很好,可以拿来为以后调试问题所用。下面就简单说两句了。


            程序中用的quartz这个开源框架来实现定时任务,具体就是30s去调用groovy脚本。groovy脚本里面发送了三四个webservice的请求,然后再根据各自不同的返回值,做相应的逻辑处理。Job这快用一些反射原理来调用groovy,然后从DB中load一些数据,组装成map,传入groovy中。

    1、期间最为常用的就是debug,断点调试了,这个是大家所常用的。F5,F6,F7,F8这些键都是为大家所熟知的,如果是远程调试的,需要在远程(linux)上把web服务里         面的相关文件改一下。(jboss里面的bin文件是run.conf,把里面的倒数第二个#放开,端口改一下,在eclipse里面新建远程实例,配上IP,端口。重启服务即可远程调试                  debug。但是只能一个人连接使用。)

    2、在没有debug模式之前,或许你也会想到看日志,这个也是所常用的。首先你要确实log4j.properties的日志级别是否是你所要。fault ,error ,info,debug,warn五个级         别,从左往右级别依次降低。打印日志:如果配置为warn,则会打印所有级别;如果配置debug,则打印debug(包含)级别以上的日志。看日志调试问题,这就要求你的日         志打印是否合理或者打印的技巧。

    3、在我们那个问题在试了以上两招之后,貌似还没有定位出来问题的根源。后来就采用一种排除法,姑且叫排除法吧。
    其实就是注释代码。大家在做项目的时候,也可能会遇到,就是我把某几行代码注释了,代码就正常了。这说明问题就出在注释的代码块里。这个方法虽然有点二,但是也是           万不得已的绝招了。

    4、还有就是有可能你的异常没有捕获,就是你没有try catch,导致你不能正确定位问题根源。
    这个时候你就要走读代码,看那些地方需要捕获异常。

    5、还有就是数据库方面,需要事物提交的地方没有提交,这个需要走读代码去查看。

    6、当这次遇到问题,但是以前的版本没有遇到,这时候你就会查阅以前的版本代码,对比代码发现问题。

    解决问题,调试问题有很多种,大家在编程的时候也都会遇到,掌握多种方法可以提高定位问题的效率。

  • 相关阅读:
    接口测试基础一--HTTP请求
    python笔记8-python的异常处理
    web自动化测试中的八大定位方法,推荐使用xpath
    charles抓取https包
    Python 中WebElement 类中的部分操作
    selenium 启动浏览器后基本操作:后退、前进、刷新、关闭窗口、关闭会话
    fiddler抓包可以抓到电脑数据抓不到手机上的数据------防火墙问题
    Charles的安装与破解
    python+ selenium + webdriver的环境准备
    python——print函数
  • 原文地址:https://www.cnblogs.com/houguiqiang/p/3373342.html
Copyright © 2020-2023  润新知