[PATCH 1/2] Move registering maint commands from maint.c to psymtalb.c

Yao Qi
2012-12-19T07:56:15Z

Hi,
I don't see the reason we have to register 'maint commands' inside
maint.c. This patch moves code registering commands out of maint.c so
that the command functions can be 'static'.

gdb:

2012-12-19 Yao Qi <yao@codesourcery.com>

* maint.c (_initialize_maint_cmds): Move code to ...
* psymtab.c (_initialize_psymtab): ... here. New.
Include "gdbcmd.h".
(maintenance_print_psymbols): Make it static.
(maintenance_info_psymtabs, maintenance_check_symtabs): Likewise.
* symtab.h (maintenance_print_psymbols): Remove declaration.
(maintenance_check_symtabs, maintenance_info_psymtabs): Likewise.
---
gdb/maint.c | 16 ----------------
gdb/psymtab.c | 29 ++++++++++++++++++++++++++---
gdb/symtab.h | 6 ------
3 files changed, 26 insertions(+), 25 deletions(-)

diff --git a/gdb/maint.c b/gdb/maint.c
index afb9968..4c7a588 100644
--- a/gdb/maint.c
+++ b/gdb/maint.c
@@ -833,12 +833,6 @@ Entries in the minimal symbol table are dumped to file OUTFILE.\n\
If a SOURCE file is specified, dump only that file's minimal symbols."),
&maintenanceprintlist);

- add_cmd ("psymbols", class_maintenance, maintenance_print_psymbols, _("\
-Print dump of current partial symbol definitions.\n\
-Entries in the partial symbol table are dumped to file OUTFILE.\n\
-If a SOURCE file is specified, dump only that file's partial symbols."),
- &maintenanceprintlist);
-
add_cmd ("objfiles", class_maintenance, maintenance_print_objfiles,
_("Print dump of current object file definitions."),
&maintenanceprintlist);
@@ -850,12 +844,6 @@ linetables --- just the symbol table structures themselves.\n\
With an argument REGEXP, list the symbol tables whose names that match that."),
&maintenanceinfolist);

- add_cmd ("psymtabs", class_maintenance, maintenance_info_psymtabs, _("\
-List the partial symbol tables for all object files.\n\
-This does not include information about individual partial symbols,\n\
-just the symbol table structures themselves."),
- &maintenanceinfolist);
-
add_cmd ("statistics", class_maintenance, maintenance_print_statistics,
_("Print statistics about internal gdb state."),
&maintenanceprintlist);
@@ -866,10 +854,6 @@ Print the internal architecture configuration.\n\
Takes an optional file parameter."),
&maintenanceprintlist);

- add_cmd ("check-symtabs", class_maintenance, maintenance_check_symtabs,
- _("Check consistency of psymtabs and symtabs."),
- &maintenancelist);
-
add_cmd ("translate-address", class_maintenance,
maintenance_translate_address,
_("Translate a section name and address to a symbol."),
diff --git a/gdb/psymtab.c b/gdb/psymtab.c
index d6dba3e..186a92c 100644
--- a/gdb/psymtab.c
+++ b/gdb/psymtab.c
@@ -35,6 +35,7 @@
#include "dictionary.h"
#include "language.h"
#include "cp-support.h"
+#include "gdbcmd.h"

#ifndef DEV_TTY
#define DEV_TTY "/dev/tty"
@@ -1818,7 +1819,7 @@ discard_psymtab (struct objfile *objfile, struct partial_symtab *pst)

\f

-void
+static void
maintenance_print_psymbols (char *args, int from_tty)
{
char **argv;
@@ -1867,7 +1868,7 @@ print-psymbols takes an output file name and optional symbol file name"));
}

/* List all the partial symbol tables whose names match REGEXP (optional). */
-void
+static void
maintenance_info_psymtabs (char *regexp, int from_tty)
{
struct program_space *pspace;
@@ -1973,7 +1974,7 @@ maintenance_info_psymtabs (char *regexp, int from_tty)

/* Check consistency of psymtabs and symtabs. */

-void
+static void
maintenance_check_symtabs (char *ignore, int from_tty)
{
struct symbol *sym;
@@ -2086,3 +2087,25 @@ map_partial_symbol_filenames (symbol_filename_ftype *fun, void *data,
need_fullname);
}
}
+
+void _initialize_psymtab (void);
+
+void
+_initialize_psymtab (void)
+{
+ add_cmd ("psymbols", class_maintenance, maintenance_print_psymbols, _("\
+Print dump of current partial symbol definitions.\n\
+Entries in the partial symbol table are dumped to file OUTFILE.\n\
+If a SOURCE file is specified, dump only that file's partial symbols."),
+ &maintenanceprintlist);
+
+ add_cmd ("psymtabs", class_maintenance, maintenance_info_psymtabs, _("\
+List the partial symbol tables for all object files.\n\
+This does not include information about individual partial symbols,\n\
+just the symbol table structures themselves."),
+ &maintenanceinfolist);
+
+ add_cmd ("check-symtabs", class_maintenance, maintenance_check_symtabs,
+ _("Check consistency of psymtabs and symtabs."),
+ &maintenancelist);
+}
diff --git a/gdb/symtab.h b/gdb/symtab.h
index b3c084d..bdabb0c 100644
--- a/gdb/symtab.h
+++ b/gdb/symtab.h
@@ -1162,18 +1162,12 @@ extern void resolve_sal_pc (struct symtab_and_line *);

void maintenance_print_symbols (char *, int);

-void maintenance_print_psymbols (char *, int);
-
void maintenance_print_msymbols (char *, int);

void maintenance_print_objfiles (char *, int);

void maintenance_info_symtabs (char *, int);

-void maintenance_info_psymtabs (char *, int);
-
-void maintenance_check_symtabs (char *, int);
-
/* Symbol-reading stuff in symfile.c and solib.c. */

extern void clear_solib (void);
--
1.7.7.6