Source:
<code>public void launch(ILaunchConfiguration config, String mode, ILaunch launch, IProgressMonitor monitor) throws CoreException { this.config = config; Oprofile.OprofileProject.setProject(getProject()); LaunchOptions options = new LaunchOptions(); options.loadConfiguration(config); IPath exePath = getExePath(config); options.setBinaryImage(exePath.toOSString()); OprofileDaemonEvent[] daemonEvents = null; if (!config.getAttribute(OprofileLaunchPlugin.ATTR_USE_DEFAULT_EVENT, false)) { OprofileCounter[] counters = oprofileCounters(config); ArrayList<OprofileDaemonEvent> events = new ArrayList<OprofileDaemonEvent>(); for (int i = 0; i < counters.length; ++i) { if (counters[i].getEnabled()) events.add(counters[i].getDaemonEvent()); } daemonEvents = new OprofileDaemonEvent[events.size()]; events.toArray(daemonEvents); } if (!preExec(options, daemonEvents, launch)) return; IRemoteCommandLauncher launcher = RemoteProxyManager.getInstance().getLauncher(oprofileProject()); IPath workingDirPath = new Path(oprofileWorkingDirURI().getPath()); String arguments[] = getProgramArgumentsArray( config ); Process process = null; for(int i = 0; i < options.getExecutionsNumber(); i++){ process = launcher.execute(exePath, arguments, getEnvironment(config), workingDirPath, monitor); DebugPlugin.newProcess( launch, process, renderProcessLabel( exePath.toOSString() ) ); try{ process.waitFor(); } catch (InterruptedException e){ <START> e.printStackTrace(); <END> } } postExec(options, daemonEvents, process); }</code><technical_language>Copied for sake of ease: I definetely want print stack traces added codebase anymore. Exception needs poped user is aware of happened is ignorable in rare cases logged for expection in Error Log</technical_language>

Target:
public void launch(ILaunchConfiguration config, String mode, ILaunch launch, IProgressMonitor monitor) throws CoreException { this.config = config; Oprofile.OprofileProject.setProject(getProject()); LaunchOptions options = new LaunchOptions(); options.loadConfiguration(config); IPath exePath = getExePath(config); options.setBinaryImage(exePath.toOSString()); OprofileDaemonEvent[] daemonEvents = null; if (!config.getAttribute(OprofileLaunchPlugin.ATTR_USE_DEFAULT_EVENT, false)) { OprofileCounter[] counters = oprofileCounters(config); ArrayList<OprofileDaemonEvent> events = new ArrayList<OprofileDaemonEvent>(); for (int i = 0; i < counters.length; ++i) { if (counters[i].getEnabled()) events.add(counters[i].getDaemonEvent()); } daemonEvents = new OprofileDaemonEvent[events.size()]; events.toArray(daemonEvents); } if (!preExec(options, daemonEvents, launch)) return; IRemoteCommandLauncher launcher = RemoteProxyManager.getInstance().getLauncher(oprofileProject()); IPath workingDirPath = new Path(oprofileWorkingDirURI().getPath()); String arguments[] = getProgramArgumentsArray( config ); Process process = null; for(int i = 0; i < options.getExecutionsNumber(); i++){ process = launcher.execute(exePath, arguments, getEnvironment(config), workingDirPath, monitor); DebugPlugin.newProcess( launch, process, renderProcessLabel( exePath.toOSString() ) ); try{ process.waitFor(); } catch (InterruptedException e){ process.destroy(); Status status = new Status(IStatus.ERROR, OprofileLaunchPlugin.PLUGIN_ID, OprofileLaunchMessages.getString("oprofilelaunch.error.interrupted_error.status_message")); throw new CoreException(status); } } postExec(options, daemonEvents, process); }