Update GdbLaunchDelegate to no longer require anything from
org.eclipse.cdt.launch.
Also triggers a build when necessary before launching, as the CDT does.
Also introduces a LaunchMessages class which uses a resourceBundle for
launch messages that has been added as org.eclipse.dd.gdb.internal.provisional.launching.LaunchMessages
Support for Restart button.
The steps to restarting the inferior are the following:
1- Create a new PTY and tell GDB to use it
2- Create a new MIInferiorProcess object which uses the new PTY
2.5- Have the CLIEventProcessor use the new MIInferiorProcess
3- Restart the inferior using -exec-run
4- Remove the previous inferior Process from the launch
5- Add the new inferior Process to the launch (which will trigger the use of
the new PTY streams)
This change supports the Restart function, including the above steps to perform the proper cleanup. The code to start the inferior has been extracted from the FinalLaunchSequence and put in GDBControl to allow sharing between start and restart. Also, the code to create the CLI and inferior process objects has been extracted from the GdbLaunchDelegate and put in GDBControl to to allow sharing between start and restart.
There only interface change that is not in a provisional interface is the
addition of resetInferior() to CLIEventprocessor which is backwards compatible.
We only support GDB 6.6 and higher, from what I can see,
-interpreter-exec is always available (I tried with mi1 m2 and m3 on GDB 6.6).
Therefore, we can simplify the launch by removing the
CheckInterpreterConsoleStep.
Debug traces were printed for out-of-band events when they were processed (processEvent()) and again when the next ResultRecord is received (processCommandDone()).
This fix only prints the ResultRecord in the processCommandDone() method.
Read the gdbinit file as specified by the user. It does not specify at the command line as the CDT does it, but instead sources it as a GDB command. I believe this allows for easier specialization of the launch.