Generalize the concept of the Bluetooth starter, extract base class
BaseCommunicationStarter that can be used to start a serial communication
without further resources (listener) as well. Introduce convenience
functions for both types.
Note: This will only work for COM-ports that are not used otherwise
by the operating system.
- Remove old rfcomm process handler from TrkGdbAdapter, use
Bluetooth starter instead
- Synchronous connection, remove waitForTrkConnect()
- Move gdb start into Trk version answer, pass on
settings id hint
- Prevent exit crash triggered by signal gdbProcessFinished()
- Set DebuggerNotReady correctly on AdapterStartFailed when no
gdb is started yet
- Introduce a communications device type flag, add stubs for
Bluetooth to serialdevicelister and pass the device type
in new struct CommunicationDevice along to run configuration
and debugger start parameters (overriding the debugger settings).
- Give the s60devices::Device a tooltip in the settings page
as it turns out, it is not possible to set pending breakpoints until
gdb has loaded as image. so add some hooks to enable adapters to trigger
the initial breakpoint syncing at the right time. do not add additional
states (say, InferiorPreparing), as it would just complicate things.
this includes:
- move the gdb ownership back to the engine (thus strip down the
adaptors as far as possible)
- make gdb startup synchronous
- make adapter shutdown synchronous
- fix the state transitions relating to shutdown
each command can have only one of two legitimate responses: "error" or -
depending on the command, and thus declared via a flag - "done" or
"running".
this is way nicer than sprinkling the code with else-ifs (where elses
are sufficient) and asserts all over the place - and silently failing in
release builds.
Now .pro files can be used as project description as usual. To make the
debugger pick up the "on device" part a magic commandline is needed:
"@sym@ c:\sys\bin\your.exe /path/to/your.sym"
If the project is not compilable, remove the Make and QMake buildsteps
and add a new Custom step that's only calling /bin/true.
Remove conditionals from toolchain enumeration, pass parameters to
TrkGdbAdapter, rename function in runconfig, derive symbol
file from local exe file.