Processfabriker

I ett programs startkonfiguration måste det körbara programmet anropas i det begärda läget. Implementeringen för en start beror på specifikationerna i respektive startkonfiguration, men i de flesta insticksprogram byggs en kommandorad och en runtime-exec anropas för att starta programmet. Klassen DebugPlugin implementerar en praktisk metod för anrop av runtime-exec och hantering av möjliga undantag. Kommandoraden och arbetskatalogen för exec kan anges.

Process p = DebugPlugin.exec(cmdLine, workingDirectory);

När java.lang.Process för det körbara programmet har skapats, måste den hanteras av insticksprogrammet för felsökning. För startprogram måste processen associeras till den ILaunch som representerar det startade programmet. I insticksprogrammet för felsökning definieras en paketeringsmodul för en systemprocess, IProcess, som gör att man kan accessa den associerade ILaunch och tilldela processen egna namngivna attribut. Dessutom definierar IProcess, en etikett för processen och associerar en IStreamsProxy med processen som ger åtkomst till indata, utdata, felflöden i systemprocessen. Den här paketeringsmodulen kan även skapas med en hjälpmetod i DebugPlugin.

IProcess process= DebugPlugin.newProcess(launch, p, "My Process);

En karta över namngivna attribut kan också tillhandahållas.

Många insticksprogram kan helt enkelt lita på hjälpmetoderna i DebugPlugin för start av systemprocessen och paketerar den i en IProcess. För de insticksprogram som behöver mer kontroll i skapandet av paketeringsmodulen, kan en processfabrik associeras till en startkonfiguration. Processfabriken används för att skapa en IProcess som uppfyller insticksprogrammets specialbehov. Processfabriken hänvisas efter ID och bör lagras i attributet DebugPlugin.ATTR_PROCESS_FACTORY_ID i startkonfigurationen.

Associationen mellan processfabrikens ID och den klass som implementerar det görs med hjälp av utökningspunkten org.eclipse.debug.core.processFactories.

Följande exempel visar hur en processfabrik sätts upp i Ant-insticksprogrammet för programstarter:

<extension point="org.eclipse.debug.core.processFactories">
	<processFactory
		class="org.eclipse.ant.internal.ui.launchConfigurations.RemoteAntProcessFactory"
		id="org.eclipse.ant.ui.remoteAntProcessFactory">
	</processFactory>
</extension>

Det är det registrerade insticksprogrammets ansvar att lagra processfabrikens ID i rätt attribut i startkonfigurationen.