diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 3444d3a6a2..a02196e503 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,7 @@ +Sun Jun 20 00:24:41 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * solib.c (solib_add_common_symbols): Add comment about performance. + Fri Jun 18 12:37:36 1993 Jim Kingdon (kingdon@lioth.cygnus.com) * config/mips/{{x,n}m-riscos.h,riscos.mh}: New files. diff --git a/gdb/solib.c b/gdb/solib.c index 124acc669f..7a2eaec3e7 100644 --- a/gdb/solib.c +++ b/gdb/solib.c @@ -259,6 +259,20 @@ solib_map_sections (so) #ifndef SVR4_SHARED_LIBS +/* This routine can be a real performance hog. According to some gprof data + which mtranle@paris.IntelliCorp.COM (Minh Tran-Le) sent, almost all the + time spend in solib_add (up to 20 minutes with 35 shared libraries) is + spent here, with 5/6 in lookup_minimal_symbol and 1/6 in read_memory. + + Possible solutions: + + * Hash the minimal symbols. + + * Just record the name of the minimal symbol and lazily patch the + addresses. + + * Tell everyone to switch to Solaris2. */ + static void solib_add_common_symbols (rtc_symp, objfile) struct rtc_symb *rtc_symp;