在RCP中保持正常:设备不跟踪资源分配
我试图让Sleak在我的Indigo RCP应用程序上工作。 我已按照本指南中的步骤操作。 即我已经安装了插件,将swt工具插件添加到当前插件,添加了所需的插件,修改了跟踪选项,并使用folder.addView("org.eclipse.swt.tools.views.SleakView");
在我的应用程序中添加了视图folder.addView("org.eclipse.swt.tools.views.SleakView");
该视图确实显示但我在尝试使用它时仍然收到错误“设备不跟踪资源分配”。
我已经在stackoverflow中尝试了关于此问题的旧问题的答案,但没有运气
Sleak(SWT和RCP):设备没有跟踪资源分配(eclipse 4.3)
Sleak SWT工具,Device不跟踪资源分配
我已经明确检查过调试配置中加载的.options文件是否确实具有所需的跟踪选项。
还有其他想法吗?
我最近遇到了同样的问题,并设法找到了解决方案。 这是我发现的,谁知道它可能会帮助你。
在RCP启动时,会调用PlatformUI.createDisplay()
,它会链接到对Workbench.createDisplay()
的调用。 这是正确读取和设置Sleak所需的调试设置的确切点。
在我们的软件上发生的事情是在上面调用PlatformUI.createDisplay()
之前调用了Display.getDefault()
PlatformUI.createDisplay()
。 它导致创建一个新的Display对象,该对象被设置为默认值。 此创建未读取和设置调试设置。
当我们的代码进入PlatformUI.createDisplay()
调用时,它实际上并没有创建新的显示。 相反,它返回了先前创建的,不是调试友好的。 因此,领导Sleak进入“设备不跟踪资源分配”的警告。
在方法Display.register (Display display)
添加断点帮助我们识别早期创建源并正确地更改它。
我认为您没有正确设置这些属性:
org.eclipse.ui/debug=true org.eclipse.ui/trace/graphics=true