在Eclipse中导航Java调用堆栈

时间:2010-07-15 14:14:51

标签: java eclipse stack call

GDB之类的调试器中,当您在断点处停止时,您可以轻松地向上移动调用堆栈并检查相关的源和堆栈帧数据。

你如何在Eclipse中做到这一点?

5 个答案:

答案 0 :(得分:51)

在“debug perspective”中,显示名为“debug”的视图。对于当前暂停的每个线程,此视图显示完整的调用堆栈。单击此堆栈的一个元素将切换编辑器视图以显示相应的类,“variables”视图将显示此堆栈元素的变量。

答案 1 :(得分:2)

请注意,默认情况下,“Debug Perspective”可能会折叠为“breadcrumb”视图模式,这意味着您一次只能看到一行堆栈跟踪。

要完全展开它,并在树中查看堆栈跟踪:

  • 单击Debug视图右上角的向下箭头。
  • 选择“布局|树”

答案 2 :(得分:1)

只需在Debug视图中单击堆栈帧即可。

答案 3 :(得分:1)

在可视化调试器中,您将看到整个堆栈跟踪。只需点击您要检查的级别即可。绝对比使用 gdb 命令更容易。 : - )

答案 4 :(得分:0)

首先,在您将要命中的代码中设置一个或多个断点,然后以下列方式之一调试应用程序:

  • 确保当前选择了包含CREATE TRIGGER patientLastNameChangeTrigger ON patient AFTER UPDATE AS BEGIN DECLARE @oldLastName VARCHAR(255) = (SELECT pt_lastName FROM DELETED); DECLARE @newLastName VARCHAR(255) = (SELECT pt_lastName FROM INSERTED); IF @oldLastName <> @newLastName INSERT INTO dbo.patientLastNameChange (lastnameChangeID, patientID, oldLastName, newLastName, datechanged) SELECT COALESCE(MAX(plnc.lastnameChangeID),0)+1 AS lastnameChangeID, (SELECT patientID FROM INSERTED) AS patientID, @oldLastName AS oldLastName, @newLastName AS newLastName, GETDATE() AS datechanged FROM patientLastNameChange plnc; END; 方法的文件
  • 打F11

  • 在Package Explorer中右键单击包含您的main方法的文件
  • 选择Debug As> Java Application

Eclipse现在应该显示“调试透视图”(可以使用“窗口”>“透视图”>“打开透视图”>“调试”手动打开)

一旦遇到一个断点,您应该在调试透视图中看到一个名为“调试”的框(要手动打开,请使用“窗口”>“显示视图”>“调试”)。看起来像这样:

enter image description here

我变灰的区域显示了当前在断点上暂停的线程的堆栈跟踪的每一步。当前正在暂停的调用堆栈的实际部分以灰色突出显示(因此,如果您有多个线程,可以通过查找突出显示的行来查看当前正在暂停的线程)。单击堆栈跟踪视图的任意行将显示详细信息(例如,堆栈中该点的“变量”)