Я пишу плагин для расширения Eclipse для пользовательского языка программирования.У меня работает вся конфигурация запуска, и любая программа на пользовательском языке запускается правильно, но я не могу активировать кнопку «Завершить» в представлении «Отладка».
Из того, что я исследовал, я знаю, что реализация инфраструктуры отладчика обеспечиваетдля действия Terminate, но, скажем, я не хочу реализовывать структуру на этом этапе и просто хотел бы иметь возможность завершить программу вместо того, чтобы отменить ее через диспетчер задач.Это возможно сделать?Или Debugger Framework - единственный способ сделать это?
Вот код из класса LaunchConfigurationDelegate,
public void launch(ILaunchConfiguration configuration, String mode,
ILaunch launch, IProgressMonitor monitor) throws CoreException {
// getting the resource from the workspace
IWorkspace workspace = ResourcesPlugin.getWorkspace();
IWorkspaceRoot root = workspace.getRoot();
List<String> filenames = configuration.getAttribute(RELATIVE_PATH,
Collections.EMPTY_LIST);
List<String> rawPaths = configuration.getAttribute(RAW_PATH,
Collections.EMPTY_LIST);
List<String> projPaths = configuration.getAttribute(PROJECT_PATH,
Collections.EMPTY_LIST);
//CustomRunner is the interface to manage the custom language execution
CustomRunner runner = null;
try {
CustomOutputHandler outHand = new CustomOutputHandler();
runner = new CustomRunner(new File(projPaths.get(0)));
runner.setOutputHandler(outHand);
for (int i = 0; i < filenames.size(); i++) {
IPath temp = new Path(filenames.get(i));
IResource CustomFile = root.findMember(temp);
if (CustomFile == null) {
String msg = "The file "
+ "<"
+ temp.toString()
+ ">"
+ " could not be found in the workspace.\nIt may have been deleted or renamed.";
throw new FileNotFoundException(msg);
}
CustomFile.deleteMarkers(IMarker.PROBLEM, false,
IResource.DEPTH_INFINITE);
CustomErrorHandler errHand = new CustomErrorHandler(CustomFile);
runner.setErrorHandler(errHand);
//Runs the custom language file
runner.run(rawPaths.get(i));
}
После этого есть только несколько блоков catch.
Мне нужно теперь иметь возможность прекратить этот запуск через представление Debug, а в случае режима Run - через команду завершения меню Run.
У меня сейчас нет DebugTarget на данном этапе.И мой вопрос: есть ли другой способ прекратить этот запуск без расширения Debug Framework?
Я попытался запустить. В этом методе запуска (), но это не сработало.