RFC: hacky fix for PR 12406

Tom Tromey
2012-01-11T19:24:03Z

I would like to get some feedback on this.

PR 12406 concerns what is printed when stop-on-solib-events is set:

(gdb) set stop-on-solib-events 1
(gdb) r
Starting program: /tmp/q
Stopped due to shared library event

What is missing here is any indication of what library was loaded.

This patch changes the output to:

(gdb) set stop-on-solib-events 1
(gdb) r
Starting program: /tmp/q
[Inferior loaded library /lib64/ld-linux-x86-64.so.2]
Stopped due to shared library event

I could not find a good way to get the information about what library
was loaded from the library-loading code to the bpstat_print code. This
approach seems like a hack to me -- so I was wondering if anyone has a
better suggestion.

This regtests fine on x86-64 F15.

Tom

2012-01-11 Tom Tromey <tromey@redhat.com>

PR symtab/12406:
* solib.c (update_solib_list): Print message if
stop_on_solib_events is set.

diff --git a/gdb/solib.c b/gdb/solib.c
index f591785..66e2f94 100644
--- a/gdb/solib.c
+++ b/gdb/solib.c
@@ -810,6 +810,11 @@ update_solib_list (int from_tty, struct target_ops *target)
_("Error while mapping shared "
"library sections:\n"));

+ if (stop_on_solib_events)
+ ui_out_message (current_uiout, 0,
+ _("[Inferior loaded library %s]\n"),
+ i->so_name);
+
/* Notify any observer that the shared object has been
loaded now that we've added it to GDB's tables. */
observer_notify_solib_loaded (i);