繁体   English   中英

自定义调试器作为 eclipse 的插件

[英]Custom Debugger as a plugin to eclipse

我正在为 Eclipse 开发一个插件来进行自定义调试操作。 我的用例是,我将打开调试器并设置断点,但是当我访问我的 ui 时,调试器不应该在我的断点处停止,而是应该将该断点中的变量值存储到文件中并继续恢复。 (我将运行一个 selenium 测试用例,对于每个请求,我需要将每个断点中的值存储在一个文件中进行测试)..

据我了解,我添加了一个扩展 IJavaBreakPointListener 并覆盖了 breakpointHit() 方法的 breakpointListener

    @Override
    public int breakpointHit(IJavaThread thread, IJavaBreakpoint breakpoint) {
        // TODO Auto-generated method stub
        System.out.println("Breakpoint has been hit!!!!!!!!!!!!!!");

        /**
           I need the value of the variable at this breakpoint
         **/


        return 0;
    }

我必须将此侦听器添加到 JDIDebugModel...

使用

JDIDebugModel.addJavaBreakpointListener(listener);

但我不知道我应该把 addJavaBreakpointListener 调用放在哪个类中。这个监听器永远不会被调用。

请帮助我坚持这一点。 或者为我的用例建议替代解决方案

您无需编写Eclipse插件即可实现这一目标。 您可以使用Breakpoint Properties 在断点上单击鼠标右键并输入类似内容时,可在上下文菜单中找到它。 注意Suspend when true ConditionalSuspend when true

在此处输入图片说明

这将在每次断点命中时执行,并在file.txt添加一行。 您可以访问代码段中的所有变量,因此可以记录所需的内容。

你的方法是正确的! 只需调用JDIDebugModel.addJavaBreakpointListener(listener); 自定义插件内的任何位置,例如命令处理程序、工具栏操作、按钮操作等。由于 addJavaBreakpointListener() 方法是静态方法,因此无论您调用它,它都会附加侦听器。 但请确保您只附加一次侦听器,否则它将多次执行您的自定义代码。 此外,请确保在 plugin.xml 中添加下面提到的所有必需插件。

  1. org.eclipse.jdt.debug
  2. org.eclipse.jdt.core
  3. org.eclipse.debug.core

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM