我有一段无法编辑的 Java 代码,我想调试它。
问题是我的 10,000 条记录中的一条存在数据错误并导致应用程序崩溃。
我可以远程调试实时应用程序并添加手表,它会在处理每个记录时获取记录的 ID。问题是当处理“坏记录”并退出方法时,手表中保存的值会丢失,所以我不知道是哪条记录导致了问题。
有什么方法可以存储/打印手表中的值
谢谢
如果错误记录通过抛出异常导致您的应用程序崩溃,请尝试在该异常上放置一个断点,也许记录信息仍将在该方法的堆栈帧中可用。这个没试过,只是一个想法。祝你好运。
可能你可以启动你自己修改过的 Eclipse,其中包含一个watchExpressionDelegates扩展点。
您将实现该委托类的类org.eclipse.jdt.internal.debug.ui.JavaWatchExpressionDelegate
可能有机会做它想做的任何事情,包括记录信息。
我尚未对其进行测试,但如果您成功实施,请告诉我们。