This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: multi-{inferior,exec}



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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]