Hi, I'm trying to solve a problem regarding running a
custom debugger using the CDT interfaces. My custom debugger requires setup
through the use of environmental variables such as updates to the path,
etc. The current interfaces do not provide a way to change the
debuggers environment. I propose a few simple changes to the CDT debuggger
launcher to fix this bug.
Proposal: ****
File/Class org.eclipse.cdt.debug.mi.core.GDBServerCDIDebugger
Modify
createLaunchSession to accept a "String[] envp" parameter. Use the
original createLaunchSession method to call the new one, but with a default
envp Array. This will prevent any previously working code from
breaking.
OR...
Add
IGDBServerMILaunchConfigurationConstants/IMILaunchConfigurationConstants
attribute for specifying envp strings and have the createLaunchSession pick
it up and pass it along to MIPugin.
****
File/Class org.eclipse.cdt.debug.mi.core.MIPlugin
Modify all of the
createCSession function to take a String[] envp parameters. Use the same
technique above to keep the original interface methods whilst having access
to the new ones.
****
File/Class org.eclipse.cdt.debug.mi.core.MIProcessAdapter
Modify the
CTOR and the getGDBProcess to accept a new parameter, specifically the
String[] envp parameter. Finally, in getGDBProcess pass this parameter into
the calls of ProcessFactory.getFactory().exec(...).
Thanks!
-Stu
|