Eclipse plugin 在使用cdt eclipse时向gdb添加新命令

Eclipse plugin 在使用cdt eclipse时向gdb添加新命令,eclipse-plugin,gdb,eclipse-cdt,Eclipse Plugin,Gdb,Eclipse Cdt,你好, 我之所以写信给您,是因为我试图按照您的指示[here:]在使用cdt eclipse时向gdb添加新命令。 我似乎根本不工作。我将print语句放在所有扩展类的所有方法中。未打印任何内容,这表示未调用这些方法。下面是我的代码。我错过了什么? 自从我在那里工作以来,我没有真正开始实施新的服务工厂 plugin.xml: <plugin> <extension point="org.eclipse.debug.core.launchDelegates"

你好, 我之所以写信给您,是因为我试图按照您的指示[here:]在使用cdt eclipse时向gdb添加新命令。 我似乎根本不工作。我将print语句放在所有扩展类的所有方法中。未打印任何内容,这表示未调用这些方法。下面是我的代码。我错过了什么? 自从我在那里工作以来,我没有真正开始实施新的服务工厂

plugin.xml:

<plugin>
  <extension
         point="org.eclipse.debug.core.launchDelegates">
      <launchDelegate
            delegate="tracerdubug.MyTracerLaunchDelegate"
            id="TracerDubug.MyTracerLaunchDelegate"
            modes="debug, run">
      </launchDelegate>
   </extension>
</plugin>
//

//

谢谢,
Shai

我也有同样的问题,从另一个论坛得到了答案。您必须添加更多信息和更多扩展:

<extension
point="org.eclipse.debug.core.launchDelegates">
      <launchDelegate

    delegate="tracerdubug.MyTracerLaunchDelegate"
             delegate="Tracerdubug.MyTracerLaunchDelegate"
            delegateDescription="Your description"
            id="org.eclipse.cdt.dsf.gdb.launch.localCLaunch"
            modes="debug"
            name="My GDB Launch Delegate"
            sourceLocatorId="org.eclipse.cdt.debug.core.sourceLocator"
            sourcePathComputerId="org.eclipse.cdt.debug.core.sourcePathComputer"
            type="org.eclipse.cdt.launch.applicationLaunchType">
      </launchDelegate>
   </extension>
   <extension point="org.eclipse.debug.ui.launchConfigurationTypeImages">
            <launchConfigurationTypeImage
            icon="icons/img.gif"
            configTypeID="Tracerdubug.MyTracerLaunchDelegate"
            id="Tracerdubug.TabGroups.launcher.Image">
        </launchConfigurationTypeImage>
    </extension>
    <extension point="org.eclipse.debug.ui.launchConfigurationTabGroups">
        <launchConfigurationTabGroup
            type="Tracerdubug.MyTracerLaunchDelegate"
            class="Tracerdubug.TabGroups.TabGroupTest"
            id="Tracerdubug.TabGroups.TabGroupTest">
        </launchConfigurationTabGroup>
     </extension>
您也可以创建自己的选项卡,请参见:

我的命令工厂已加载,我现在正在学习如何使用现有服务发送命令

public class TracerRunControl extends GDBRunControl_7_0 {

    public TracerRunControl(DsfSession session) {
        super(session);
        System.out.println("TracerRunControl");
    }

}
public class MyTracerLaunchDelegate extends GdbLaunchDelegate implements ILaunchConfigurationDelegate2{

    public MyTracerLaunchDelegate() {
        super();
        System.out.println("MyTracerLaunchDelegate::ctr()");
    }


    @Override
    public void launch( ILaunchConfiguration config, String mode, ILaunch launch, IProgressMonitor monitor ) throws CoreException {
        System.out.println("MyTracerLaunchDelegate::launch()");      
super.launch(config, mode, launch, monitor);     
    }


    @Override
    protected IDsfDebugServicesFactory newServiceFactory(String version) {
        System.out.println("MyTracerLaunchDelegate");
        return new TracerDebugServicesFactory(version);
    }
}
public class TracerDebugServicesFactory extends GdbDebugServicesFactory {

    public TracerDebugServicesFactory(String version) {
        super(version);
        // TODO Auto-generated constructor stub
    }

    @Override
    protected ICommandControl createCommandControl(DsfSession session, ILaunchConfiguration config) {
        GDBControl_7_0 g = new GDBControl_7_0(session,config);
        System.out.println("TracerDebugServicesFactory::createCommandControl");
        return g;
    }

    @Override
    protected IRunControl createRunControlService(DsfSession session) {
        System.out.println("TracerDebugServicesFactory::createProcessesService");
        return new TracerRunControl(session);  
    }

    @Override
    protected IProcesses createProcessesService(DsfSession session) {
        System.out.println("TracerDebugServicesFactory::createProcessesService");
       return new GDBProcesses_7_0(session);
    }
}
<extension
point="org.eclipse.debug.core.launchDelegates">
      <launchDelegate

    delegate="tracerdubug.MyTracerLaunchDelegate"
             delegate="Tracerdubug.MyTracerLaunchDelegate"
            delegateDescription="Your description"
            id="org.eclipse.cdt.dsf.gdb.launch.localCLaunch"
            modes="debug"
            name="My GDB Launch Delegate"
            sourceLocatorId="org.eclipse.cdt.debug.core.sourceLocator"
            sourcePathComputerId="org.eclipse.cdt.debug.core.sourcePathComputer"
            type="org.eclipse.cdt.launch.applicationLaunchType">
      </launchDelegate>
   </extension>
   <extension point="org.eclipse.debug.ui.launchConfigurationTypeImages">
            <launchConfigurationTypeImage
            icon="icons/img.gif"
            configTypeID="Tracerdubug.MyTracerLaunchDelegate"
            id="Tracerdubug.TabGroups.launcher.Image">
        </launchConfigurationTypeImage>
    </extension>
    <extension point="org.eclipse.debug.ui.launchConfigurationTabGroups">
        <launchConfigurationTabGroup
            type="Tracerdubug.MyTracerLaunchDelegate"
            class="Tracerdubug.TabGroups.TabGroupTest"
            id="Tracerdubug.TabGroups.TabGroupTest">
        </launchConfigurationTabGroup>
     </extension>
package Tracerdubug.TabGroups;

import org.eclipse.cdt.dsf.gdb.internal.ui.launching.CDebuggerTab;
import org.eclipse.cdt.dsf.gdb.internal.ui.launching.CMainAttachTab;
import org.eclipse.cdt.dsf.gdb.internal.ui.launching.AttachCDebuggerTab;
import org.eclipse.cdt.launch.ui.CArgumentsTab;
import org.eclipse.debug.ui.AbstractLaunchConfigurationTabGroup;
import org.eclipse.debug.ui.CommonTab;
import org.eclipse.debug.ui.EnvironmentTab;
import org.eclipse.debug.ui.ILaunchConfigurationDialog;
import org.eclipse.debug.ui.ILaunchConfigurationTab;
import org.eclipse.debug.ui.sourcelookup.SourceLookupTab;
public class TabGroupTest extends AbstractLaunchConfigurationTabGroup {

    // Create an array of tabs to be displayed in the debug dialog
    public void createTabs(ILaunchConfigurationDialog dialog, String mode) {
        ILaunchConfigurationTab[] tabs = 
            new ILaunchConfigurationTab[] {,
                new CMainAttachTab(),
                new CArgumentsTab(),
                new EnvironmentTab(),
                new SourceLookupTab(),
                new CommonTab(),
            };
        setTabs(tabs);
    }
}