Sun Aug 17 00:42:11 1997 Martin M. Hunt <hunt@cygnus.com>
* gdbtk.c (gdb_listfuncs): New function that returns a list of all the functions in a source file.
This commit is contained in:
parent
e406b8d7f1
commit
99c98415f2
@ -1,3 +1,11 @@
|
||||
start-sanitize-gdbtk
|
||||
Sun Aug 17 00:42:11 1997 Martin M. Hunt <hunt@cygnus.com>
|
||||
|
||||
* gdbtk.c (gdb_listfuncs): New function that returns
|
||||
a list of all the functions in a source file.
|
||||
|
||||
end-sanitize-gdbtk
|
||||
|
||||
Fri Aug 15 13:59:37 1997 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
|
||||
|
||||
* infrun.c (wait_for_inferior): Add the symbols for any
|
||||
|
43
gdb/gdbtk.c
43
gdb/gdbtk.c
@ -90,6 +90,7 @@ static int gdbtk_dis_asm_read_memory PARAMS ((bfd_vma, bfd_byte *, int, disassem
|
||||
static int gdb_path_conv PARAMS ((ClientData, Tcl_Interp *, int, char *[]));
|
||||
static int gdb_stop PARAMS ((ClientData, Tcl_Interp *, int, char *[]));
|
||||
static int gdb_listfiles PARAMS ((ClientData, Tcl_Interp *, int, char *[]));
|
||||
static int gdb_listfuncs PARAMS ((ClientData, Tcl_Interp *, int, char *[]));
|
||||
static int call_wrapper PARAMS ((ClientData, Tcl_Interp *, int, char *[]));
|
||||
static int gdb_cmd PARAMS ((ClientData, Tcl_Interp *, int, char *argv[]));
|
||||
static int gdb_fetch_registers PARAMS ((ClientData, Tcl_Interp *, int, char *[]));
|
||||
@ -910,6 +911,46 @@ gdb_listfiles (clientData, interp, argc, argv)
|
||||
return TCL_OK;
|
||||
}
|
||||
|
||||
static int
|
||||
gdb_listfuncs (clientData, interp, argc, argv)
|
||||
ClientData clientData;
|
||||
Tcl_Interp *interp;
|
||||
int argc;
|
||||
char *argv[];
|
||||
{
|
||||
struct symtab *symtab;
|
||||
struct blockvector *bv;
|
||||
struct block *b;
|
||||
struct symbol *sym;
|
||||
int i,j;
|
||||
|
||||
if (argc != 2)
|
||||
error ("wrong # args");
|
||||
|
||||
symtab = lookup_symtab (argv[1]);
|
||||
|
||||
if (!symtab)
|
||||
error ("No such file");
|
||||
|
||||
bv = BLOCKVECTOR (symtab);
|
||||
for (i = GLOBAL_BLOCK; i <= STATIC_BLOCK; i++)
|
||||
{
|
||||
b = BLOCKVECTOR_BLOCK (bv, i);
|
||||
/* Skip the sort if this block is always sorted. */
|
||||
if (!BLOCK_SHOULD_SORT (b))
|
||||
sort_block_syms (b);
|
||||
for (j = 0; j < BLOCK_NSYMS (b); j++)
|
||||
{
|
||||
sym = BLOCK_SYM (b, j);
|
||||
if (SYMBOL_CLASS (sym) == LOC_BLOCK)
|
||||
{
|
||||
Tcl_DStringAppendElement (result_ptr, SYMBOL_NAME(sym));
|
||||
}
|
||||
}
|
||||
}
|
||||
return TCL_OK;
|
||||
}
|
||||
|
||||
static int
|
||||
gdb_stop (clientData, interp, argc, argv)
|
||||
ClientData clientData;
|
||||
@ -1420,6 +1461,8 @@ gdbtk_init ( argv0 )
|
||||
NULL);
|
||||
Tcl_CreateCommand (interp, "gdb_listfiles", call_wrapper, gdb_listfiles,
|
||||
NULL);
|
||||
Tcl_CreateCommand (interp, "gdb_listfuncs", call_wrapper, gdb_listfuncs,
|
||||
NULL);
|
||||
Tcl_CreateCommand (interp, "gdb_stop", call_wrapper, gdb_stop, NULL);
|
||||
Tcl_CreateCommand (interp, "gdb_regnames", call_wrapper, gdb_regnames, NULL);
|
||||
Tcl_CreateCommand (interp, "gdb_fetch_registers", call_wrapper,
|
||||
|
Loading…
Reference in New Issue
Block a user