调试的代码和调试的二进制文件要尽量一致

【遇到的问题】


  • 第一天有很多人提交了代码到SVN,当晚,公司服务器自动build了新包。
  • 第二天来到公司后,虽然从SVN拉了最新的代码,但是没有在自己的测试环境的Tomcat机器上安装这个最新的包。
  • 在Eclipse中修改后台Java代码,从自己的Tomcat机器上取到.jar文件,将对应的.class文件放入.jar文件中的正确的路径下,然后将这个.jar文件放回到Tomcat机器上,重启Tomcat。
  • 这之后,调试自己对后台Java代码刚做的修改,却怎么也调不对:

  1. 有些变量总是在调试窗口中总是取不到值(甚至连个null也取不到)
  2. 调试时有些代码的位置牛头不对马嘴,即期望走到某个函数,结果走到了一个另外一个奇怪的位置


【原因】


开始还以为是某些.class文件或者是某个资源文件忘了部署,导致期望的变量取不到正确的值。后来发现不是这样。真正的原因在于,第一天别人提及了很多代码,第二天我拉了这些代码,但没有更新Tomcat机器上的包,结果导致:

  • 调试的时候,Tomcat机器上的包和调试用的Java不匹配,即第一天别人提及的很多改动,在Tomcat机器上没有
  • 于是调试的.jar和调试用的Java代码对不上
  • 调试的时候,牛头不对马嘴
  • 出现各种意想不到的奇怪现象

【解决】


  • 尽量及时更新测试环境的Tomcat机器上的包
  • 尽量确保调试的环境的二进制文件和调试用的Java代码是匹配的,至少对于要调试的部分的代码,二者没有出入


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值