DEBUG!!!有人会不?Step By Step

SDMRauquin 2009-06-11 11:59:15
各种各种的基础问题,实际会debug完全不用问的。
还有多少大虾是写完代码直接Run,还不知道Debug为何物的?

我现在的实力,很感谢我的2个入门老大,一个教我入门(就是会了Eclipse和html。。。)
一个教会了我Debug。开始写代码,我就只会Run。
有错了就喊老大,他就说,我也不知道的,来。我们Debug。。。。
Eclipse我最喜欢的就是断点调试功能。靠这个 解决无数问题,读懂无数代码。

Step By Step的Debug,实际大学就学过的,不过那时感觉多此一举。直接Run不就完了。。。(原谅我当年的无知)

希望大家说说自己对Debug的心得经验,大家互助下。。。

等级不够 只能散200分。。。希望不要出现“节分,顶。。。的”
...全文
104 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
johnston678 2009-06-12
  • 打赏
  • 举报
回复
基本上一般的问题用debug都能调试出来,
很简单的,
以前没用过,感觉挺麻烦的,
现在熟悉了,用起来很舒服,不需要每次都打印输出相关参数的值了,
我现在基本上就用这几个快捷键F5,F6,F7,F8,可以单步调试查看流程和变量值的改变!
ty_seven 2009-06-12
  • 打赏
  • 举报
回复
虽然不用debug也可以,但是使用debug很方便
MT502 2009-06-11
  • 打赏
  • 举报
回复
debug在调式并发、异步的时候用处就不大了
luffyke 2009-06-11
  • 打赏
  • 举报
回复
debug,调试也,是当程序出现难以解决的问题时,除了google,baidu外,就是debug了,断点debug是经典的,楼上的说的很清楚了,简单的问题就自己想吧,不过只要自己的程序逻辑好一点,一般出错的话自己都可以找到的!
ltandfyy 2009-06-11
  • 打赏
  • 举报
回复
我来说一次我debug的教训,并不是万能的,有些东西进入debug状态会导致程序出错的,比如数据集为只进只读型的,debug状态下对数据集的向下读取进行了监控,会导致程序内少读一条数据,如:ResultSet rs,从数据库中取到数据后,比如只取到一条,在监控式中添加rs.next(),结果监控式中是看到了这条数据,而程序中while(rs.next()),一条都没有了,指针已经被指向下一条,为null了。不知有没有人碰到过这种情况,只进只读型的,即使是在监控状态下,也会让指针向下走一次。
Dantin 2009-06-11
  • 打赏
  • 举报
回复
debug和合理的断点才是调试的利器
jdlsfl 2009-06-11
  • 打赏
  • 举报
回复
debug是解决疑难杂症的良方
不过Eclipse的debug还是不如微软的强
ZangXT 2009-06-11
  • 打赏
  • 举报
回复
debug还是很重要的,尤其是对复杂数据结构的操作。以前写一个流程图布局的东西,偶尔会连线错误,跟了好久才发现问题。
fdgaq 2009-06-11
  • 打赏
  • 举报
回复
1.Step Into (also F5) 跳入
2.Step Over (also F6) 跳过
3.Step Return (also F7) 执行完当前method,然后return跳出此method
4.step Filter 逐步过滤 一直执行直到遇到未经过滤的位置或断点(设置Filter:window-preferences-java-Debug-step Filtering)
5.resume 重新开始执行debug,一直运行直到遇到breakpoint。
例如 :A和B两个断点,debug过程中发现A断点已经无用,去除A断点,运行resume就会跳过A直接到达B断点。
6.hit count 设置执行次数 适合程序中的for循环(设置 breakpoint view-右键hit count)
7.inspect 检查 运算。执行一个表达式显示执行值
8.watch 实时地监视对象、方法或变量的变化

9.我们常说的断点(breakpoints)是指line breakpoints,除了line breakpoints,还有其他的断点类型:field(watchpoint)breakpoint,method breakpoint ,exception breakpoint.
10.field breakpoint 也叫watchpoint(监视点) 当成员变量被读取或修改时暂挂
11.添加method breakpoint 进入/离开此方法时暂挂(Run-method breakpoint)
12.添加Exception breakpoint 捕抓到Execption时暂挂(待续...)
断点属性:
1.hit count 执行多少次数后暂挂 用于循环
2.enable condition 遇到符合你输入条件(为ture\改变时)就暂挂
3.suspend thread 多线程时暂挂此线程
4.suspend VM 暂挂虚拟机

13.variables 视图里的变量可以改变变量值,在variables 视图选择变量点击右键--change value.一次来进行快速调试。
14.debug 过程中修改了某些code后--〉save&build-->resume-->重新暂挂于断点

15.resume 当debug调试跑出异常时,运行resume,重新从断点开始调试
16.如果一行有很多方法,
当第一次按F5键就跳入这一行第一个方法,F6一步一步调试,F7跳出这方法.
当第二次按F5键就跳入这一行第二个方法,F6一步一步调试,F7跳出这方法.
以此类推.想进入这一行第几个方法,就按几次F5和F7.
kokobox 2009-06-11
  • 打赏
  • 举报
回复
很少用debug

感觉有debug还没有想的快。

kokobox 2009-06-11
  • 打赏
  • 举报
回复
我先沙发
emon123 2009-06-11
  • 打赏
  • 举报
回复
赞同,大部分的错误都是通过debug调试出来的!~
ndcs_dhf2008 2009-06-11
  • 打赏
  • 举报
回复
呵呵,debug模式是很好用的,初学者的宝.帮顶.
linjingqin 2009-06-11
  • 打赏
  • 举报
回复
这贴火哦,,我也是刚刚接触debug的,学学
SDMRauquin 2009-06-11
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 jasher 的回复:]
简单的问题用Debug就可以了,复杂的问题还是用logger
[/Quote]

实际log我一般是在不能断点调试的地方才用。

比如线上的网站,只能靠log。
适当的log还是很有用的
9441 2009-06-11
  • 打赏
  • 举报
回复
教程不错
jasher 2009-06-11
  • 打赏
  • 举报
回复
简单的问题用Debug就可以了,复杂的问题还是用logger
kbyst 2009-06-11
  • 打赏
  • 举报
回复
的确啊

正如那句话说的:

程序不是编出来的,是调出来的~~
blliy117 2009-06-11
  • 打赏
  • 举报
回复
碰到问题我的解决方法就是

1.异常是什么,在那一行,先改
2.如果没有看到异常就debug

确实很有效!!
jackywang44 2009-06-11
  • 打赏
  • 举报
回复
没有debug的话,那程序员就苦了!这是个好东西!
加载更多回复(6)

23,404

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧