X-Git-Url: https://repo.jachan.dev/binutils.git/blobdiff_plain/2d6d969c616d286076df1778db0d06a64f11251a..d881dd869fc70d807f3630328606c3d3cb3e83f9:/gdb/xcoffsolib.c diff --git a/gdb/xcoffsolib.c b/gdb/xcoffsolib.c index 4d2893f769..590de2cc66 100644 --- a/gdb/xcoffsolib.c +++ b/gdb/xcoffsolib.c @@ -1,17 +1,35 @@ -#include +/* Shared library support for RS/6000 (xcoff) object files, for GDB. + Copyright 1991, 1992 Free Software Foundation. + Contributed by IBM Corporation. + +This file is part of GDB. + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ + #include #include #include "defs.h" #include "bfd.h" -/*#include "libbfd.h" /* BFD internals (sigh!) FIXME */ #include "xcoffsolib.h" +#ifdef SOLIB_SYMBOLS_MANUAL extern struct symtab *current_source_symtab; extern int current_source_line; - /* The real work of adding a shared library file to the symtab and the section list. */ @@ -56,7 +74,7 @@ solib_add (arg_string, from_tty, target) /* if already loaded, continue with the next one. */ if (vp->loaded) { - printf ("%s%s%s%s: already loaded.\n", + printf_unfiltered ("%s%s%s%s: already loaded.\n", *vp->member ? "(" : "", vp->member, *vp->member ? ") " : "", @@ -64,13 +82,16 @@ solib_add (arg_string, from_tty, target) continue; } - printf ("Loading %s%s%s%s...", + printf_unfiltered ("Loading %s%s%s%s...", *vp->member ? "(" : "", vp->member, *vp->member ? ") " : "", vp->name); - fflush (stdout); + gdb_flush (gdb_stdout); + /* This is gross and doesn't work. If this code is re-enabled, + just stick a objfile member into the struct vmap; that's the + way solib.c (for SunOS/SVR4) does it. */ obj = lookup_objfile_bfd (vp->bfd); if (!obj) { warning ("\nObj structure for the shared object not found. Loading failed."); @@ -80,7 +101,7 @@ solib_add (arg_string, from_tty, target) syms_from_objfile (obj, 0, 0, 0); new_symfile_objfile (obj, 0, 0); vmap_symtab (vp, 0, 0); - printf ("Done.\n"); + printf_unfiltered ("Done.\n"); loaded = vp->loaded = 1; } } @@ -97,10 +118,9 @@ solib_add (arg_string, from_tty, target) /* reinit_frame_cache(); */ } else if (!matched) - printf ("No matching shared object found.\n"); - + printf_unfiltered ("No matching shared object found.\n"); } - +#endif /* SOLIB_SYMBOLS_MANUAL */ /* Return the module name of a given text address. Note that returned buffer is not persistent. */ @@ -134,19 +154,19 @@ register struct ld_info *ldi; struct vmap *vp = vmap; if (!vp || !vp->nxt) { - printf("No shared libraries loaded at this time.\n"); + printf_unfiltered("No shared libraries loaded at this time.\n"); return; } /* skip over the first vmap, it is the main program, always loaded. */ vp = vp->nxt; - printf ("\ + printf_unfiltered ("\ Text Range Data Range Syms Shared Object Library\n"); for (; vp; vp = vp->nxt) { - printf ("0x%08x-0x%08x 0x%08x-0x%08x %s %s%s%s%s\n", + printf_unfiltered ("0x%08x-0x%08x 0x%08x-0x%08x %s %s%s%s%s\n", vp->tstart, vp->tend, vp->dstart, vp->dend, vp->loaded ? "Yes" : "No ", @@ -157,7 +177,7 @@ Text Range Data Range Syms Shared Object Library\n"); } } - +#ifdef SOLIB_SYMBOLS_MANUAL void sharedlibrary_command (args, from_tty) char *args; @@ -166,13 +186,16 @@ sharedlibrary_command (args, from_tty) dont_repeat(); solib_add (args, from_tty, (struct target_ops *)0); } +#endif /* SOLIB_SYMBOLS_MANUAL */ void _initialize_solib() { +#ifdef SOLIB_SYMBOLS_MANUAL add_com("sharedlibrary", class_files, sharedlibrary_command, "Load shared object library symbols for files matching REGEXP."); +#endif add_info("sharedlibrary", solib_info, "Status of loaded shared object libraries"); }