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.
Adds the use of solib-search-path as done in the CDT (by filling the Shared Library subtab in the debugger tab of the launch).
Also adds the use of auto-solib-add as in the CDT.
Currently, DSF launches gdb with a <file> argument, which tells gdb where the
executable file and the symbols are. This is potentially restrictive to
someone wanting to extend gdb.
This change removes the <file> argument to gdb and uses -file-exec-file and
-file-symbol-file commands to set this parameter in the FinalLaunchSequence.
This has the exact same effect, but allows to easily override these commands by
using a tailored FinalLaunchSequence.
For a local launch, only gdb/mi debugger will be available, while for a remote launch, only gdbserver debugger will be available.
This is a temporary solution.