java中的frame是什么意思_在Intellij中使用Java调试器时“Drop Frame”是什么意思?...
问题
我在Intellij 8中使用了Java调试器并注意到一个标有"drop frame"的按钮,是否有人知道它的用途是什么?如何/为什么这将被使用/有用?
#1 热门回答(100 赞)
可以在调试器中查看应用程序的调用堆栈。使用"丢帧"功能,你可以"回退"到之前的堆栈帧,从某种意义上讲,它可以追溯到时间。如果你错过了想要再次看到的关键位置,这有助于重新输入功能。
正如名称"Stack Frame"所暗示的那样,已经对全局状态进行的更改(如静态变量,字段值的更改等)将不会被撤消,只会重置局部变量。这可能导致与最初导致断点的路径不同的执行路径。你需要意识到这一点 - 我经常认为它是一个有用的功能,可以探索不同的执行路径,而无需重新启动应用程序或导致当前堆栈的特定冗长进程。结合调试器可用的变量值的变化,你可以做各种有趣的事情。
请注意,当然,可能发生的任何副作用 - 例如G。网络流量,文件操作,控制台输出等 - 不能倒带。
#2 热门回答(10 赞)
调试器中的Drop Frame弹出当前堆栈帧并将控制权返回给调用方法,重置任何局部变量。这对于重复单步执行函数非常有用,但要注意:字段突变或全局状态更改将保留。
查看更多信息here。
#3 热门回答(5 赞)
使用调试器从堆栈中删除帧本质上可以让你"回退"应用程序的执行以达到先前的状态。堆栈框架外的变量不会还原。
作为旁注,我相信这个功能在Eclipse中称为"DroptoFrame",但它的用途相同。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
