“调试!”
您可能会注意到,在第一个 15 seconds of this YouTube video (from 1:01:01 to 1:01:16) 内,Markus Persson(又名“Notch”,Minecraft 的创建者)以某种方式设法保存/更新应用程序并为其附加调试器当它已经在调试过程中时,据说所有这些都带有简单的键盘快捷键。以前编码的应用程序以某种方式神奇地变成了新编辑的应用程序,并且似乎没有重新启动它或生成一个新进程......这可能只是某种形式的本地远程调试,但有些事情似乎不太正确。
我花了几天时间在谷歌上搜索并询问他是如何做到这一点的,但没有结果。我在 Eclipse 首选项下没有找到这样的选项,每当我尝试保存和调试已经运行的应用程序时,它只是启动新更新的应用程序的一个单独实例,与旧的、过时的应用程序并排。
我错过了什么吗?这怎么可能?
他是如何利用如此令人震惊、强大的调试功能的?
提前致谢!
更新
好吧,这似乎是 Eclipse 特有的标准功能。
来自 NetBeans 和 Visual Studio 的背景,我很惊讶这在其他地方似乎不存在(或者至少在 NetBeans 中!)...
最佳答案
这是 Eclipse 的内置功能。如果在程序以 Debug模式运行时编辑方法,它将编译新方法,并用新版本替换旧方法。如果某个线程已经在运行该方法,它将跳回开头(AFAIK;这可能仅在程序暂停时发生)。
您无需重新启动程序或设置任何特殊首选项。只需编辑并保存,奇迹就会发生。
Eclipse 并不总能弄清楚如何将更改合并到正在运行的程序中 - 通常如果您更改了方法体之外的任何内容(包括方法的参数或返回类型)。在这种情况下,您将看到一个警告对话框,其中包含停止程序、重新启动程序或忽略更改的选项。
关于java - 他到底如何调试这样一个正在运行的应用程序,更重要的是,我该如何调试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24008912/