Debugging 断点';用户的位置会影响bug的可查找性吗?

Debugging 断点';用户的位置会影响bug的可查找性吗?,debugging,language-agnostic,Debugging,Language Agnostic,在本研究中,我们自己的华夫饼干做出如下观察: 这个bug也恰好是一个heisenbug,当调试它时,如果您的第一个断点太早,单步执行会显示一切正常 (参考:维基百科的) 断点的位置如何可能对是否出现错误产生影响 (是的,我知道维基百科的文章回答了这个问题,但我认为这对SO来说是一个很好的问题,我打赌SO可以做得更好。)如果有任何类型的异步活动正在进行,那么这可能会影响海森堡。e、 g.线程、I/O、中断等。在不同位置设置断点会影响主线程和异步事件的相对计时,从而可能导致相关错误出现或消失。如果正

在本研究中,我们自己的华夫饼干做出如下观察:

这个bug也恰好是一个heisenbug,当调试它时,如果您的第一个断点太早,单步执行会显示一切正常

(参考:维基百科的)

断点的位置如何可能对是否出现错误产生影响


(是的,我知道维基百科的文章回答了这个问题,但我认为这对SO来说是一个很好的问题,我打赌SO可以做得更好。)

如果有任何类型的异步活动正在进行,那么这可能会影响海森堡。e、 g.线程、I/O、中断等。在不同位置设置断点会影响主线程和异步事件的相对计时,从而可能导致相关错误出现或消失。

如果正在进行任何类型的异步活动,则可能会影响Heisenbug。e、 g.线程、I/O、中断等。在不同位置设置断点会影响主线程和异步事件的相对计时,从而可能导致相关错误出现或消失。

常见的原因是计时,尤其是多线程

假设您有一个GUI应用程序,其中包含一些事件处理程序和一个错误,其中表选择未正确处理,可能是因为Swing有时在处理事件之前开始更新表


通过在断点处暂停线程,您可以更改表组件接收事件的顺序,从而可以看到有断点和没有断点的不同结果。这是一个非常常见的问题,也是调试带有大量事件的复杂GUI应用程序非常痛苦的原因之一。

一个常见的原因是计时,尤其是多线程

假设您有一个GUI应用程序,其中包含一些事件处理程序和一个错误,其中表选择未正确处理,可能是因为Swing有时在处理事件之前开始更新表

通过在断点处暂停线程,您可以更改表组件接收事件的顺序,从而可以看到有断点和没有断点的不同结果。这是一个非常常见的问题,也是使调试带有大量事件的复杂GUI应用程序非常痛苦的原因之一