multi-{inferior,exec}

Nenad Vukicevic nenad@intrepid.com
Sun Sep 5 17:16:00 GMT 2010


> I think the next missing bit is support for I/T sets.  E.g., I wanted to
> try to debug g++ but put a breakpoint in its cc1plus subprocess.  You
> can do this today, but only clumsily: either by using add-inferior to
> load the symbols for cc1plus, or by using "catch exec" and setting the
> breakpoint at exec time.  I/T sets would let users set this sort of
> breakpoint more easily.

I think that I/T sets is a very useful addition. Recently we've made 
some changes for debugging of the UPC
- http://www.gnu.org/software/gcc/projects/gupc.html - programs. 
However, as our run-time contains
a thread that is not UPC language related, I made some changes and 
created a "upcmode"
of operation where commands like breakpoint, info threads, .. apply only 
to UPC threads (a set in
your example). Also, "c -a" like commands apply only to UPC threads. 
Same with "thread apply all".
In essence you are focusing your debugging to a group of threads. 
Switching off "upcmode" makes
everything go back to normal (in your case selecting a thread set "all" 
turns off this feature).

Also, having set names is better then numbers (e.g. "upc" set of threads 
for UPC program set) and using
names or numbers should be interchangeable.

We also had to implement "collective" breakpoints where breakpoint is 
announced to user only
once all the threads reached it. In "upcmode" every breakpoint is a 
collective one, unless you
explicitly turn this feature off.

Nenad



More information about the Gdb mailing list