Hi, (This is one of the last patches needed for correct multi-process + non-stop debugging against Ericsson DICOS. This one may turn out useful for some embedded OSs, when multi-process support for them is added.) When debugging against DICOS, we only need/should query the shared library list (using solib-target.c) once on initial connection --- not whenever we attach to a new process. (there's no notion of a main exec file in DICOS, it's all shared libraries, with a bunch of possible entry points). The same code is visible to all processes. Although each process has it's own address space, all code is loaded/relocated to the same addresses in all inferiors. It's like we're debugging a bunch of forks. The debug API then goes a step further, and makes it so that an inserted breakpoint is visible to all processes. Since both the code and inserted breakpoint locations are visible to all processes, it is bad to remove/clear them whenever we attach or detach to/from an inferior. This patch teaches GDB about this property. There are several ways to skin this cat. This one seemed like the smallest, most extensible and malleable one from GDB's side, because it doesn't cast to stone any new protocol extension --- which may prove limited to some systems (some memory regions shared, others not; some shared but visible at different addresses in different inferiors/cores, etc.). I was hoping we'd cross that bridge when we start seeing those systems reporting multi process support to GDB. What do people think about this? -- Pedro Alves