[Qt-creator] MPI debugger plugin

Poenitz Andre Andre.Poenitz at digia.com
Wed Aug 14 12:26:05 CEST 2013


Hi Mohammad.

You wrote:
> My experience with parallel MPI debugging in QtCreator has always been
> opening multiple sessions, attaching to running processors, and go
> back and forth between processes manually ... which kinda works but
> can easily get out of hand for more than 2-3 processes!

Right. The setup I usually use for "reality checks" is four processes on 
an embedded target and another one on the host system, and the ugly
part is indeed the startup of the "system". It's doable with a few lines of 
external script by using the -debug <executable>,server=<server:port>
[,kit=<kit>] command line options for starting up the individual creator
instances, but that is not really "integrated", so I wouldn't call that a 
proper solution.

> Indeed there are not that many parallel MPI debuggers available and
> the one I know are all really expensive (in the $500-700 price range
> and more). But the thing is most MPI debuggers are really just
> wrappers around serial ones like gdb ... its just that they show the
> result in one window and make it really easy to switch between
> processes.
> 
> So after thing lengthy introduction, here is my question: For someone
> like me, who is considerably comfortable with C++ but with no Qt
> background, how hard is it to change the current debugger plugin so
> that I could easily debug MPI programs in one window and confortably
> switch between different processes? If this is doable, where should I
> start?

We already have the ability to run multiple "debugger engines" in
parallel. There are, however, currently only two features that take 
advantage of that. The first is the "Snapshots" feature, which allows 
you to take "Snapshots" of a running process (essentially core file that 
are owned by seperate engines) and switch between those snapshots
and the live process using the Snapshots view.The second 
mulit-engine feature is the mixed qml/c++ debugging consisting 
of three engines running in parallel - one "master engine" essentially 
multiplexes between a qml/js debugger engine and a c++ debugger
engine talking to gdb or cdb. Going from the Snapshot feature to 
proper MPI support should be possible.

Andre'


More information about the Qt-creator mailing list