gcc -Wall lint:
* breakpoint.c (watchpoint_check): Remove unused variable b. * stack.c (print_frame_info): Move sp and buf inside #if. * eval.c (evaluate_subexp): Remove unused variables pp, mangle_ptr, ptr, and mangle_tstr. * valarith.c (value_x_binop): Remove unused variables mangle_tstr and mangle_ptr. * symtab.c (lookup_symtab): Put variable copy inside #if. (decode_line_1): Put variable q1 inside #if 0. * target.h: Declare target_link. * infrun.c (wait_for_inferior): Remove unused variables signame. * remote.c (remote_resume): Remove unused variable name. * c-exp.y (parse_number): Parenthesize operand of shift. * dbxread.c (record_minimal_symbol): Parenthesize operand of && (this is a semantic change, the warning seems to have detected a bug). * dbxread.c (end_psymtab): Move variable p1 inside #if. * coffread.c: Move variable temptype inside #if. * ch-typeprint.c (chill_type_print_base): Remove unused variable name. * ch-valprint.c: #include typeprint.h and ch-lang.h. (chill_val_print): Remove unused variable in_range. (chill_val_print): Remove statement "length > TYPE_LENGTH (type);". (chill_val_print): Add default case for switch. * stabsread.h: Declare stabsect_build_psymtabs. * os9kread.c (read_minimal_symbols): Make this return void. (os9k_symfile_read): Remove unused variables stb_exist and val. (os9k_symfile_init): Remove unused variable val. (fill_sym): Remove unused variable id. (read_os9k_psymtab): Put variable back_to inside #if 0. Remove unused variable nsl. Remove unused variable symfile_bfd. #if 0 unused variables lbrac_unmatched_complaint and lbrac_mismatch_complaint. Remove declaration for non-existent function os9k_next_symbol_text. * annotate.c, annotate.h: New files, containing a function for each annotation which outputs it. * Move breakpoints_changed from breakpoint.c to annotate.c. * breakpoint.c, blockframe.c, infrun.c, cp-valprint.c, main.c, printcmd.c, source.c, stack.c, utils.c, valprint.c: Use annotate.c functions to output annotations. * Makefile.in (OBS): Add annotate.o.
This commit is contained in:
parent
f3e72e3771
commit
1c95d7ab2e
22 changed files with 927 additions and 254 deletions
|
@ -76,6 +76,8 @@ a68v-nat.c
|
|||
alpha-nat.c
|
||||
alpha-tdep.c
|
||||
altos-xdep.c
|
||||
annotate.c
|
||||
annotate.h
|
||||
arm-convert.s
|
||||
arm-pinsn.c
|
||||
arm-tdep.c
|
||||
|
|
|
@ -1,3 +1,48 @@
|
|||
Fri May 13 08:10:21 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
|
||||
|
||||
gcc -Wall lint:
|
||||
* breakpoint.c (watchpoint_check): Remove unused variable b.
|
||||
* stack.c (print_frame_info): Move sp and buf inside #if.
|
||||
* eval.c (evaluate_subexp): Remove unused variables pp,
|
||||
mangle_ptr, ptr, and mangle_tstr.
|
||||
* valarith.c (value_x_binop): Remove unused variables mangle_tstr
|
||||
and mangle_ptr.
|
||||
* symtab.c (lookup_symtab): Put variable copy inside #if.
|
||||
(decode_line_1): Put variable q1 inside #if 0.
|
||||
* target.h: Declare target_link.
|
||||
* infrun.c (wait_for_inferior): Remove unused variables signame.
|
||||
* remote.c (remote_resume): Remove unused variable name.
|
||||
* c-exp.y (parse_number): Parenthesize operand of shift.
|
||||
* dbxread.c (record_minimal_symbol): Parenthesize operand of &&
|
||||
(this is a semantic change, the warning seems to have detected a bug).
|
||||
* dbxread.c (end_psymtab): Move variable p1 inside #if.
|
||||
* coffread.c: Move variable temptype inside #if.
|
||||
* ch-typeprint.c (chill_type_print_base): Remove unused variable
|
||||
name.
|
||||
* ch-valprint.c: #include typeprint.h and ch-lang.h.
|
||||
(chill_val_print): Remove unused variable in_range.
|
||||
(chill_val_print): Remove statement "length > TYPE_LENGTH (type);".
|
||||
(chill_val_print): Add default case for switch.
|
||||
* stabsread.h: Declare stabsect_build_psymtabs.
|
||||
* os9kread.c (read_minimal_symbols): Make this return void.
|
||||
(os9k_symfile_read): Remove unused variables stb_exist and val.
|
||||
(os9k_symfile_init): Remove unused variable val.
|
||||
(fill_sym): Remove unused variable id.
|
||||
(read_os9k_psymtab): Put variable back_to inside #if 0. Remove
|
||||
unused variable nsl.
|
||||
Remove unused variable symfile_bfd.
|
||||
#if 0 unused variables lbrac_unmatched_complaint and
|
||||
lbrac_mismatch_complaint.
|
||||
Remove declaration for non-existent function os9k_next_symbol_text.
|
||||
|
||||
* annotate.c, annotate.h: New files, containing a function for
|
||||
each annotation which outputs it.
|
||||
* Move breakpoints_changed from breakpoint.c to annotate.c.
|
||||
* breakpoint.c, blockframe.c, infrun.c, cp-valprint.c, main.c,
|
||||
printcmd.c, source.c, stack.c, utils.c, valprint.c:
|
||||
Use annotate.c functions to output annotations.
|
||||
* Makefile.in (OBS): Add annotate.o.
|
||||
|
||||
Thu May 12 10:46:27 1994 Jeff Law (law@snake.cs.utah.edu)
|
||||
|
||||
* hppa-tdep.c (read_unwind_info): Make sure elf_unwind_size and
|
||||
|
|
|
@ -381,8 +381,8 @@ inferior_h = inferior.h $(breakpoint_h)
|
|||
# right, it is probably easiest just to list .h files here directly.
|
||||
|
||||
HFILES_NO_SRCDIR = buildsym.h call-cmds.h coff-solib.h defs.h dst.h environ.h \
|
||||
$(gdbcmd_h) \
|
||||
$(gdbcore_h) gdb-stabs.h $(inferior_h) language.h minimon.h monitor.h \
|
||||
$(gdbcmd_h) gdbcore.h \
|
||||
gdb-stabs.h $(inferior_h) language.h minimon.h monitor.h \
|
||||
objfiles.h parser-defs.h partial-stab.h serial.h signals.h solib.h \
|
||||
symfile.h stabsread.h target.h terminal.h typeprint.h xcoffsolib.h \
|
||||
c-lang.h ch-lang.h m2-lang.h complaints.h ns32k-opcode.h valprint.h \
|
||||
|
@ -400,9 +400,9 @@ HFILES_NO_SRCDIR = buildsym.h call-cmds.h coff-solib.h defs.h dst.h environ.h \
|
|||
vx-share/xdr_ptrace.h vx-share/xdr_rdb.h thread.h \
|
||||
dcache.h remote-utils.h remote-sim.h
|
||||
|
||||
# Header files that already have srcdir in them.
|
||||
# Header files that already have srcdir in them, or which are in objdir.
|
||||
|
||||
HFILES_WITH_SRCDIR = $(udiheaders)
|
||||
HFILES_WITH_SRCDIR = $(udiheaders) ../bfd/bfd.h
|
||||
|
||||
|
||||
# GDB "info" files, which should be included in their entirety
|
||||
|
@ -445,7 +445,7 @@ OBS = version.o main.o blockframe.o breakpoint.o findvar.o stack.o thread.o \
|
|||
dwarfread.o mipsread.o stabsread.o core.o c-lang.o ch-lang.o m2-lang.o \
|
||||
complaints.o typeprint.o c-typeprint.o ch-typeprint.o m2-typeprint.o \
|
||||
c-valprint.o cp-valprint.o ch-valprint.o m2-valprint.o nlmread.o \
|
||||
serial.o mdebugread.o os9kread.o
|
||||
serial.o mdebugread.o os9kread.o annotate.o
|
||||
|
||||
TSOBS = inflow.o
|
||||
|
||||
|
@ -615,9 +615,6 @@ xm-vaxult.h: xm-vax.h
|
|||
xm-vaxbsd.h: xm-vax.h
|
||||
|
||||
kdb: $(NTSSTART) $(OBS) $(NTSOBS) $(ADD_DEPS) $(CDEPS)
|
||||
rm -f init.c
|
||||
$(srcdir)/munch $(MUNCH_DEFINE) $(OBS) $(NTSOBS) > init.c
|
||||
$(CC) $(INTERNAL_LDFLAGS) -c init.c $(CLIBS)
|
||||
ld -o kdb $(NTSSTART) $(OBS) $(NTSOBS) init.o $(ADD_FILES) \
|
||||
-lc $(CLIBS)
|
||||
|
||||
|
@ -889,7 +886,7 @@ ALLDEPFILES = 29k-share/udi/udip2soc.c 29k-share/udi/udr.c \
|
|||
lynx-nat.c m3-nat.c \
|
||||
m68k-pinsn.c m68k-tdep.c \
|
||||
m88k-nat.c m88k-pinsn.c m88k-tdep.c mips-nat.c mips-pinsn.c \
|
||||
mips-tdep.c mipsm3-nat.c news-xdep.c \
|
||||
mips-tdep.c mipsm3-nat.c mipsv4-nat.c news-xdep.c \
|
||||
nindy-share/Onindy.c nindy-share/nindy.c \
|
||||
nindy-share/ttyflush.c nindy-tdep.c \
|
||||
ns32k-pinsn.c ns32km3-nat.c osfsolib.c \
|
||||
|
@ -942,7 +939,8 @@ ALLPARAM = config/a29k/nm-ultra3.h config/a29k/tm-a29k.h \
|
|||
config/m68k/nm-sun2.h \
|
||||
config/m68k/nm-sun3.h config/m68k/tm-3b1.h config/m68k/tm-altos.h \
|
||||
config/m68k/tm-apollo68b.h \
|
||||
config/m68k/tm-amix.h config/m68k/tm-delta68.h \
|
||||
config/m68k/tm-amix.h \
|
||||
config/m68k/tm-cisco.h config/m68k/tm-delta68.h \
|
||||
config/m68k/tm-dpx2.h config/m68k/tm-es1800.h \
|
||||
config/m68k/tm-hp300bsd.h config/m68k/tm-hp300hpux.h \
|
||||
config/m68k/tm-isi.h config/m68k/tm-m68klynx.h \
|
||||
|
@ -971,11 +969,11 @@ ALLPARAM = config/a29k/nm-ultra3.h config/a29k/tm-a29k.h \
|
|||
config/mips/tm-idt64.h config/mips/tm-idtl64.h \
|
||||
config/mips/tm-irix3.h config/mips/tm-irix5.h \
|
||||
config/mips/tm-mips.h config/mips/tm-mips64.h \
|
||||
config/mips/tm-mipsm3.h \
|
||||
config/mips/tm-mipsm3.h config/mips/tm-mipsv4.h \
|
||||
config/mips/xm-irix3.h \
|
||||
config/mips/xm-irix4.h config/mips/xm-irix5.h \
|
||||
config/mips/xm-makeva.h config/mips/xm-mips.h \
|
||||
config/mips/xm-mipsm3.h \
|
||||
config/mips/xm-mipsm3.h config/mips/xm-mipsv4.h \
|
||||
config/mips/xm-riscos.h config/mips/xm-news-mips.h \
|
||||
config/nm-lynx.h config/nm-sysv4.h \
|
||||
config/none/nm-none.h config/none/tm-none.h config/none/xm-none.h \
|
||||
|
@ -1026,7 +1024,8 @@ ALLCONFIG = config/a29k/a29k-kern.mt config/a29k/a29k-udi.mt \
|
|||
config/m68k/3b1.mt config/m68k/altos.mh config/m68k/altos.mt \
|
||||
config/m68k/amix.mh config/m68k/amix.mt config/m68k/apollo68b.mh \
|
||||
config/m68k/apollo68b.mt \
|
||||
config/m68k/apollo68v.mh config/m68k/delta68.mh \
|
||||
config/m68k/apollo68v.mh \
|
||||
config/m68k/cisco.mt config/m68k/delta68.mh \
|
||||
config/m68k/delta68.mt config/m68k/dpx2.mh config/m68k/dpx2.mt \
|
||||
config/m68k/es1800.mt config/m68k/hp300bsd.mh \
|
||||
config/m68k/hp300bsd.mt config/m68k/hp300hpux.mh \
|
||||
|
@ -1049,6 +1048,7 @@ ALLCONFIG = config/a29k/a29k-kern.mt config/a29k/a29k-udi.mt \
|
|||
config/mips/littlemips.mh config/mips/littlemips.mt \
|
||||
config/mips/mipsel64.mt \
|
||||
config/mips/mipsm3.mh config/mips/mipsm3.mt \
|
||||
config/mips/mipsv4.mh config/mips/mipsv4.mt \
|
||||
config/mips/news-mips.mh config/mips/riscos.mh \
|
||||
config/none/none.mh config/none/none.mt config/ns32k/merlin.mh \
|
||||
config/ns32k/merlin.mt config/ns32k/ns32km3.mh config/ns32k/ns32km3.mt \
|
||||
|
@ -1298,6 +1298,8 @@ mipsread.o: mipsread.c buildsym.h complaints.h $(bfd_h) $(defs_h) \
|
|||
$(expression_h) gdb-stabs.h $(gdbcore_h) $(gdbtypes_h) language.h \
|
||||
objfiles.h partial-stab.h stabsread.h symfile.h $(symtab_h)
|
||||
|
||||
mipsv4-nat.o: mipsv4-nat.c $(defs_h) $(gdbcore_h) $(inferior_h) target.h
|
||||
|
||||
news-xdep.o: news-xdep.c
|
||||
|
||||
Onindy.o: nindy-share/Onindy.c $(wait_h) nindy-share/block_io.h \
|
||||
|
|
508
gdb/annotate.c
Normal file
508
gdb/annotate.c
Normal file
|
@ -0,0 +1,508 @@
|
|||
/* Annotation routines for GDB.
|
||||
Copyright 1986, 1989, 1990, 1991, 1992 Free Software Foundation, Inc.
|
||||
|
||||
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 "defs.h"
|
||||
#include "annotate.h"
|
||||
#include "value.h"
|
||||
#include "target.h"
|
||||
|
||||
void
|
||||
breakpoints_changed ()
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
{
|
||||
target_terminal_ours ();
|
||||
printf_unfiltered ("\n\032\032breakpoints-invalid\n");
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
annotate_breakpoint (num)
|
||||
int num;
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032breakpoint %d\n", num);
|
||||
}
|
||||
|
||||
void
|
||||
annotate_watchpoint (num)
|
||||
int num;
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032watchpoint %d\n", num);
|
||||
}
|
||||
|
||||
void
|
||||
annotate_starting ()
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032starting\n");
|
||||
}
|
||||
|
||||
void
|
||||
annotate_stopped ()
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032stopped\n");
|
||||
}
|
||||
|
||||
void
|
||||
annotate_exited (exitstatus)
|
||||
int exitstatus;
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032exited %d\n", exitstatus);
|
||||
}
|
||||
|
||||
void
|
||||
annotate_signalled ()
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032signalled\n");
|
||||
}
|
||||
|
||||
void
|
||||
annotate_signal_name ()
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032signal-name\n");
|
||||
}
|
||||
|
||||
void
|
||||
annotate_signal_name_end ()
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032signal-name-end\n");
|
||||
}
|
||||
|
||||
void
|
||||
annotate_signal_string ()
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032signal-string\n");
|
||||
}
|
||||
|
||||
void
|
||||
annotate_signal_string_end ()
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032signal-string-end\n");
|
||||
}
|
||||
|
||||
void
|
||||
annotate_signal ()
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032signal\n");
|
||||
}
|
||||
|
||||
void
|
||||
annotate_breakpoints_headers ()
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032breakpoints-headers\n");
|
||||
}
|
||||
|
||||
void
|
||||
annotate_field (num)
|
||||
int num;
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032field %d\n", num);
|
||||
}
|
||||
|
||||
void
|
||||
annotate_breakpoints_table ()
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032breakpoints-table\n");
|
||||
}
|
||||
|
||||
void
|
||||
annotate_record ()
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032record\n");
|
||||
}
|
||||
|
||||
void
|
||||
annotate_breakpoints_table_end ()
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032breakpoints-table-end\n");
|
||||
}
|
||||
|
||||
void
|
||||
annotate_frames_invalid ()
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
{
|
||||
target_terminal_ours ();
|
||||
printf_unfiltered ("\n\032\032frames-invalid\n");
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
annotate_field_begin (type)
|
||||
struct type *type;
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
{
|
||||
printf_filtered ("\n\032\032field-begin ");
|
||||
print_value_flags (type);
|
||||
printf_filtered ("\n");
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
annotate_field_name_end ()
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032field-name-end\n");
|
||||
}
|
||||
|
||||
void
|
||||
annotate_field_value ()
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032field-value\n");
|
||||
}
|
||||
|
||||
void
|
||||
annotate_field_end ()
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032field-value\n");
|
||||
}
|
||||
|
||||
void
|
||||
annotate_quit ()
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032quit\n");
|
||||
}
|
||||
|
||||
void
|
||||
annotate_error ()
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032error\n");
|
||||
}
|
||||
|
||||
void
|
||||
annotate_error_begin ()
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
fprintf_filtered (gdb_stderr, "\n\032\032error-begin\n");
|
||||
}
|
||||
|
||||
void
|
||||
annotate_value_history_begin (histindex, type)
|
||||
int histindex;
|
||||
struct type *type;
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
{
|
||||
printf_filtered ("\n\032\032value-history-begin %d ", histindex);
|
||||
print_value_flags (type);
|
||||
printf_filtered ("\n");
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
annotate_value_begin (type)
|
||||
struct type *type;
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
{
|
||||
printf_filtered ("\n\032\032value-begin ");
|
||||
print_value_flags (type);
|
||||
printf_filtered ("\n");
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
annotate_value_history_value ()
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032value-history-value\n");
|
||||
}
|
||||
|
||||
void
|
||||
annotate_value_history_end ()
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032value-history-end\n");
|
||||
}
|
||||
|
||||
void
|
||||
annotate_value_end ()
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032value-end\n");
|
||||
}
|
||||
|
||||
void
|
||||
annotate_display_begin ()
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032display-begin\n");
|
||||
}
|
||||
|
||||
void
|
||||
annotate_display_number_end ()
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032display-number-end\n");
|
||||
}
|
||||
|
||||
void
|
||||
annotate_display_format ()
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032display-format\n");
|
||||
}
|
||||
|
||||
void
|
||||
annotate_display_expression ()
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032display-expression\n");
|
||||
}
|
||||
|
||||
void
|
||||
annotate_display_expression_end ()
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032display-expression-end\n");
|
||||
}
|
||||
|
||||
void
|
||||
annotate_display_value ()
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032display-value\n");
|
||||
}
|
||||
|
||||
void
|
||||
annotate_display_end ()
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032display-end\n");
|
||||
}
|
||||
|
||||
void
|
||||
annotate_arg_begin ()
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032arg-begin\n");
|
||||
}
|
||||
|
||||
void
|
||||
annotate_arg_name_end ()
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032arg-name-end\n");
|
||||
}
|
||||
|
||||
void
|
||||
annotate_arg_value (type)
|
||||
struct type *type;
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
{
|
||||
printf_filtered ("\n\032\032arg-value ");
|
||||
print_value_flags (type);
|
||||
printf_filtered ("\n");
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
annotate_arg_end ()
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032arg-end\n");
|
||||
}
|
||||
|
||||
void
|
||||
annotate_source (filename, line, character, mid, pc)
|
||||
char *filename;
|
||||
int line;
|
||||
int character;
|
||||
int mid;
|
||||
CORE_ADDR pc;
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032source ");
|
||||
else
|
||||
printf_filtered ("\032\032");
|
||||
|
||||
printf_filtered ("%s:%d:%d:%s:", filename,
|
||||
line, character,
|
||||
mid ? "middle" : "beg");
|
||||
print_address_numeric (pc, 0, gdb_stdout);
|
||||
printf_filtered ("\n");
|
||||
}
|
||||
|
||||
void
|
||||
annotate_frame_begin (level, pc)
|
||||
int level;
|
||||
CORE_ADDR pc;
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
{
|
||||
printf_filtered ("\n\032\032frame-begin %d ", level);
|
||||
print_address_numeric (pc, 0, gdb_stdout);
|
||||
printf_filtered ("\n");
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
annotate_function_call ()
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032function-call\n");
|
||||
}
|
||||
|
||||
void
|
||||
annotate_signal_handler_caller ()
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032signal-handler-caller\n");
|
||||
}
|
||||
|
||||
void
|
||||
annotate_frame_address ()
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032frame-address\n");
|
||||
}
|
||||
|
||||
void
|
||||
annotate_frame_address_end ()
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032frame-address-end\n");
|
||||
}
|
||||
|
||||
void
|
||||
annotate_frame_function_name ()
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032frame-function-name\n");
|
||||
}
|
||||
|
||||
void
|
||||
annotate_frame_args ()
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032frame-args\n");
|
||||
}
|
||||
|
||||
void
|
||||
annotate_frame_source_begin ()
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032frame-source-begin\n");
|
||||
}
|
||||
|
||||
void
|
||||
annotate_frame_source_file ()
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032frame-source-file\n");
|
||||
}
|
||||
|
||||
void
|
||||
annotate_frame_source_file_end ()
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032frame-source-file-end\n");
|
||||
}
|
||||
|
||||
void
|
||||
annotate_frame_source_line ()
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032frame-source-line\n");
|
||||
}
|
||||
|
||||
void
|
||||
annotate_frame_source_end ()
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032frame-source-end\n");
|
||||
}
|
||||
|
||||
void
|
||||
annotate_frame_where ()
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032frame-where\n");
|
||||
}
|
||||
|
||||
void
|
||||
annotate_frame_end ()
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032frame-end\n");
|
||||
}
|
||||
|
||||
void
|
||||
annotate_array_section_begin (index, elttype)
|
||||
int index;
|
||||
struct type *elttype;
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
{
|
||||
printf_filtered ("\n\032\032array-section-begin %d ", index);
|
||||
print_value_flags (elttype);
|
||||
printf_filtered ("\n");
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
annotate_elt_rep (repcount)
|
||||
unsigned int repcount;
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032elt-rep %u\n", repcount);
|
||||
}
|
||||
|
||||
void
|
||||
annotate_elt_rep_end ()
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032elt-rep-end\n");
|
||||
}
|
||||
|
||||
void
|
||||
annotate_elt ()
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032elt\n");
|
||||
}
|
||||
|
||||
void
|
||||
annotate_array_section_end ()
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032array-section-end\n");
|
||||
}
|
||||
|
95
gdb/annotate.h
Normal file
95
gdb/annotate.h
Normal file
|
@ -0,0 +1,95 @@
|
|||
/* Annotation routines for GDB.
|
||||
Copyright 1986, 1989, 1990, 1991, 1992 Free Software Foundation, Inc.
|
||||
|
||||
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. */
|
||||
|
||||
extern void breakpoints_changed PARAMS ((void));
|
||||
|
||||
extern void annotate_breakpoint PARAMS ((int));
|
||||
extern void annotate_watchpoint PARAMS ((int));
|
||||
extern void annotate_starting PARAMS ((void));
|
||||
extern void annotate_stopped PARAMS ((void));
|
||||
extern void annotate_exited PARAMS ((int));
|
||||
extern void annotate_signalled PARAMS ((void));
|
||||
extern void annotate_signal_name PARAMS ((void));
|
||||
extern void annotate_signal_name_end PARAMS ((void));
|
||||
extern void annotate_signal_string PARAMS ((void));
|
||||
extern void annotate_signal_string_end PARAMS ((void));
|
||||
extern void annotate_signal PARAMS ((void));
|
||||
|
||||
extern void annotate_breakpoints_headers PARAMS ((void));
|
||||
extern void annotate_field PARAMS ((int));
|
||||
extern void annotate_breakpoints_table PARAMS ((void));
|
||||
extern void annotate_record PARAMS ((void));
|
||||
extern void annotate_breakpoints_table_end PARAMS ((void));
|
||||
|
||||
extern void annotate_frames_invalid PARAMS ((void));
|
||||
|
||||
#ifdef __STDC__
|
||||
struct type;
|
||||
#endif
|
||||
|
||||
extern void annotate_field_begin PARAMS ((struct type *));
|
||||
extern void annotate_field_name_end PARAMS ((void));
|
||||
extern void annotate_field_value PARAMS ((void));
|
||||
extern void annotate_field_end PARAMS ((void));
|
||||
|
||||
extern void annotate_quit PARAMS ((void));
|
||||
extern void annotate_error PARAMS ((void));
|
||||
extern void annotate_error_begin PARAMS ((void));
|
||||
|
||||
extern void annotate_value_history_begin PARAMS ((int, struct type *));
|
||||
extern void annotate_value_begin PARAMS ((struct type *));
|
||||
extern void annotate_value_history_value PARAMS ((void));
|
||||
extern void annotate_value_history_end PARAMS ((void));
|
||||
extern void annotate_value_end PARAMS ((void));
|
||||
|
||||
extern void annotate_display_begin PARAMS ((void));
|
||||
extern void annotate_display_number_end PARAMS ((void));
|
||||
extern void annotate_display_format PARAMS ((void));
|
||||
extern void annotate_display_expression PARAMS ((void));
|
||||
extern void annotate_display_expression_end PARAMS ((void));
|
||||
extern void annotate_display_value PARAMS ((void));
|
||||
extern void annotate_display_end PARAMS ((void));
|
||||
|
||||
extern void annotate_arg_begin PARAMS ((void));
|
||||
extern void annotate_arg_name_end PARAMS ((void));
|
||||
extern void annotate_arg_value PARAMS ((struct type *));
|
||||
extern void annotate_arg_end PARAMS ((void));
|
||||
|
||||
extern void annotate_source PARAMS ((char *, int, int, int, CORE_ADDR));
|
||||
|
||||
extern void annotate_frame_begin PARAMS ((int, CORE_ADDR));
|
||||
extern void annotate_function_call PARAMS ((void));
|
||||
extern void annotate_signal_handler_caller PARAMS ((void));
|
||||
extern void annotate_frame_address PARAMS ((void));
|
||||
extern void annotate_frame_address_end PARAMS ((void));
|
||||
extern void annotate_frame_function_name PARAMS ((void));
|
||||
extern void annotate_frame_args PARAMS ((void));
|
||||
extern void annotate_frame_source_begin PARAMS ((void));
|
||||
extern void annotate_frame_source_file PARAMS ((void));
|
||||
extern void annotate_frame_source_file_end PARAMS ((void));
|
||||
extern void annotate_frame_source_line PARAMS ((void));
|
||||
extern void annotate_frame_source_end PARAMS ((void));
|
||||
extern void annotate_frame_where PARAMS ((void));
|
||||
extern void annotate_frame_end PARAMS ((void));
|
||||
|
||||
extern void annotate_array_section_begin PARAMS ((int, struct type *));
|
||||
extern void annotate_elt_rep PARAMS ((unsigned int));
|
||||
extern void annotate_elt_rep_end PARAMS ((void));
|
||||
extern void annotate_elt PARAMS ((void));
|
||||
extern void annotate_array_section_end PARAMS ((void));
|
|
@ -35,6 +35,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
|||
#include "language.h"
|
||||
#include <string.h>
|
||||
#include "demangle.h"
|
||||
#include "annotate.h"
|
||||
|
||||
/* local function prototypes */
|
||||
|
||||
|
@ -193,19 +194,6 @@ int default_breakpoint_valid;
|
|||
CORE_ADDR default_breakpoint_address;
|
||||
struct symtab *default_breakpoint_symtab;
|
||||
int default_breakpoint_line;
|
||||
|
||||
/* Flag indicating extra verbosity for xgdb. */
|
||||
extern int xgdb_verbose;
|
||||
|
||||
static void
|
||||
breakpoints_changed ()
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
{
|
||||
target_terminal_ours ();
|
||||
printf_unfiltered ("\n\032\032breakpoints-invalid\n");
|
||||
}
|
||||
}
|
||||
|
||||
/* *PP is a string denoting a breakpoint. Get the number of the breakpoint.
|
||||
Advance *PP after the string and any trailing whitespace.
|
||||
|
@ -945,12 +933,14 @@ print_it_normal (bs)
|
|||
{
|
||||
/* I think the user probably only wants to see one breakpoint
|
||||
number, not all of them. */
|
||||
annotate_breakpoint (bs->breakpoint_at->number);
|
||||
printf_filtered ("\nBreakpoint %d, ", bs->breakpoint_at->number);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
if (bs->old_val != NULL)
|
||||
{
|
||||
annotate_watchpoint (bs->breakpoint_at->number);
|
||||
printf_filtered ("\nWatchpoint %d, ", bs->breakpoint_at->number);
|
||||
print_expression (bs->breakpoint_at->exp, gdb_stdout);
|
||||
printf_filtered ("\nOld value = ");
|
||||
|
@ -1044,7 +1034,6 @@ watchpoint_check (p)
|
|||
char *p;
|
||||
{
|
||||
bpstat bs = (bpstat) p;
|
||||
struct breakpoint *b;
|
||||
FRAME saved_frame, fr;
|
||||
int within_current_scope, saved_level;
|
||||
|
||||
|
@ -1540,46 +1529,33 @@ breakpoint_1 (bnum, allflag)
|
|||
|
||||
if (!found_a_breakpoint++)
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032breakpoints-headers\n");
|
||||
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032field 0\n");
|
||||
annotate_field (0);
|
||||
printf_filtered ("Num ");
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032field 1\n");
|
||||
annotate_field (1);
|
||||
printf_filtered ("Type ");
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032field 2\n");
|
||||
annotate_field (2);
|
||||
printf_filtered ("Disp ");
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032field 3\n");
|
||||
annotate_field (3);
|
||||
printf_filtered ("Enb ");
|
||||
if (addressprint)
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032field 4\n");
|
||||
annotate_field (4);
|
||||
printf_filtered ("Address ");
|
||||
}
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032field 5\n");
|
||||
annotate_field (5);
|
||||
printf_filtered ("What\n");
|
||||
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032breakpoints-table\n");
|
||||
annotate_breakpoints_table ();
|
||||
}
|
||||
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032record\n\n\032\032field 0\n");
|
||||
annotate_record ();
|
||||
annotate_field (0);
|
||||
printf_filtered ("%-3d ", b->number);
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032field 1\n");
|
||||
annotate_field (1);
|
||||
printf_filtered ("%-14s ", bptypes[(int)b->type]);
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032field 2\n");
|
||||
annotate_field (2);
|
||||
printf_filtered ("%-4s ", bpdisps[(int)b->disposition]);
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032field 3\n");
|
||||
annotate_field (3);
|
||||
printf_filtered ("%-3c ", bpenables[(int)b->enable]);
|
||||
|
||||
strcpy (wrap_indent, " ");
|
||||
|
@ -1592,8 +1568,7 @@ breakpoint_1 (bnum, allflag)
|
|||
/* Field 4, the address, is omitted (which makes the columns
|
||||
not line up too nicely with the headers, but the effect
|
||||
is relatively readable). */
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032field 5\n");
|
||||
annotate_field (5);
|
||||
print_expression (b->exp, gdb_stdout);
|
||||
break;
|
||||
|
||||
|
@ -1608,8 +1583,7 @@ breakpoint_1 (bnum, allflag)
|
|||
case bp_call_dummy:
|
||||
if (addressprint)
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032field 4\n");
|
||||
annotate_field (4);
|
||||
/* FIXME-32x64: need a print_address_numeric with
|
||||
field width */
|
||||
printf_filtered
|
||||
|
@ -1618,8 +1592,7 @@ breakpoint_1 (bnum, allflag)
|
|||
((unsigned long) b->address, "08l"));
|
||||
}
|
||||
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032field 5\n");
|
||||
annotate_field (5);
|
||||
|
||||
last_addr = b->address;
|
||||
if (b->source_file)
|
||||
|
@ -1644,8 +1617,7 @@ breakpoint_1 (bnum, allflag)
|
|||
|
||||
if (b->frame)
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032field 6\n");
|
||||
annotate_field (6);
|
||||
|
||||
printf_filtered ("\tstop only in stack frame at ");
|
||||
print_address_numeric (b->frame, 1, gdb_stdout);
|
||||
|
@ -1654,8 +1626,7 @@ breakpoint_1 (bnum, allflag)
|
|||
|
||||
if (b->cond)
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032field 7\n");
|
||||
annotate_field (7);
|
||||
|
||||
printf_filtered ("\tstop only if ");
|
||||
print_expression (b->cond, gdb_stdout);
|
||||
|
@ -1664,16 +1635,14 @@ breakpoint_1 (bnum, allflag)
|
|||
|
||||
if (b->ignore_count)
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032field 8\n");
|
||||
annotate_field (8);
|
||||
|
||||
printf_filtered ("\tignore next %d hits\n", b->ignore_count);
|
||||
}
|
||||
|
||||
if ((l = b->commands))
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032field 9\n");
|
||||
annotate_field (9);
|
||||
|
||||
while (l)
|
||||
{
|
||||
|
@ -1698,8 +1667,7 @@ breakpoint_1 (bnum, allflag)
|
|||
if (last_addr != (CORE_ADDR)-1)
|
||||
set_next_address (last_addr);
|
||||
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032breakpoints-table-end\n");
|
||||
annotate_breakpoints_table_end ();
|
||||
}
|
||||
|
||||
/* ARGSUSED */
|
||||
|
|
|
@ -1056,7 +1056,8 @@ parse_number (p, len, parsed_float, putithere)
|
|||
<< 16);
|
||||
if (high_bit == 0)
|
||||
/* A long long does not fit in a LONGEST. */
|
||||
high_bit = (unsigned LONGEST)1 << sizeof (LONGEST) * HOST_CHAR_BIT - 1;
|
||||
high_bit =
|
||||
(unsigned LONGEST)1 << (sizeof (LONGEST) * HOST_CHAR_BIT - 1);
|
||||
unsigned_type = builtin_type_unsigned_long_long;
|
||||
signed_type = builtin_type_long_long;
|
||||
}
|
||||
|
|
|
@ -74,7 +74,6 @@ chill_type_print_base (type, stream, show, level)
|
|||
int show;
|
||||
int level;
|
||||
{
|
||||
char *name;
|
||||
register int len;
|
||||
register int i;
|
||||
struct type *index_type;
|
||||
|
|
|
@ -28,6 +28,8 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
|||
#include "language.h"
|
||||
#include "demangle.h"
|
||||
#include "c-lang.h" /* For c_val_print */
|
||||
#include "typeprint.h"
|
||||
#include "ch-lang.h"
|
||||
|
||||
static void
|
||||
chill_print_value_fields PARAMS ((struct type *, char *, GDB_FILE *, int, int,
|
||||
|
@ -201,7 +203,6 @@ chill_val_print (type, valaddr, address, stream, format, deref_ref, recurse,
|
|||
int i;
|
||||
int is_bitstring = TYPE_CODE (type) == TYPE_CODE_BITSTRING;
|
||||
int need_comma = 0;
|
||||
int in_range = 0;
|
||||
|
||||
if (is_bitstring)
|
||||
fputs_filtered ("B'", stream);
|
||||
|
@ -253,10 +254,11 @@ chill_val_print (type, valaddr, address, stream, format, deref_ref, recurse,
|
|||
fprintf_filtered (stream,
|
||||
"<dynamic length %d > static length %d>",
|
||||
length, TYPE_LENGTH (type));
|
||||
length > TYPE_LENGTH (type);
|
||||
}
|
||||
LA_PRINT_STRING (stream, data_addr, length, 0);
|
||||
return length;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
chill_print_value_fields (type, valaddr, stream, format, recurse, pretty,
|
||||
|
|
138
gdb/coffread.c
138
gdb/coffread.c
|
@ -143,8 +143,6 @@ static struct symbol *opaque_type_chain[HASHSIZE];
|
|||
struct type *in_function_type;
|
||||
#endif
|
||||
|
||||
struct pending_block *pending_blocks;
|
||||
|
||||
/* Complaints about various problems in the file being read */
|
||||
|
||||
struct complaint ef_complaint =
|
||||
|
@ -900,29 +898,32 @@ read_coff_symtab (symtab_offset, nsyms, objfile)
|
|||
break;
|
||||
/* fall in for static symbols that don't start with '.' */
|
||||
case C_EXT:
|
||||
/* Record external symbols in minsyms if we don't have debug
|
||||
info for them. FIXME, this is probably the wrong thing
|
||||
to do. Why don't we record them even if we do have
|
||||
debug symbol info? What really belongs in the minsyms
|
||||
anyway? Fred!?? */
|
||||
if (!SDB_TYPE (cs->c_type)) {
|
||||
/* FIXME: This is BOGUS Will Robinson!
|
||||
Coff should provide the SEC_CODE flag for executable sections,
|
||||
then if we could look up sections by section number we
|
||||
could see if the flags indicate SEC_CODE. If so, then
|
||||
record this symbol as a function in the minimal symbol table.
|
||||
But why are absolute syms recorded as functions, anyway? */
|
||||
if (cs->c_secnum <= text_bfd_scnum+1) {/* text or abs */
|
||||
record_minimal_symbol (cs->c_name, cs->c_value,
|
||||
mst_text, objfile);
|
||||
break;
|
||||
} else {
|
||||
record_minimal_symbol (cs->c_name, cs->c_value,
|
||||
mst_data, objfile);
|
||||
break;
|
||||
}
|
||||
}
|
||||
process_coff_symbol (cs, &main_aux, objfile);
|
||||
/* Record it in the minimal symbols regardless of SDB_TYPE.
|
||||
This parallels what we do for other debug formats, and
|
||||
probably is needed to make print_address_symbolic work right
|
||||
without the "set fast-symbolic-addr off" kludge. */
|
||||
|
||||
/* FIXME: This bogusly assumes the sections are in a certain
|
||||
order, text (SEC_CODE) sections are before data sections,
|
||||
etc. */
|
||||
if (cs->c_secnum <= text_bfd_scnum+1)
|
||||
{
|
||||
/* text or absolute. (FIXME, should use mst_abs if
|
||||
absolute). */
|
||||
record_minimal_symbol
|
||||
(cs->c_name, cs->c_value,
|
||||
cs->c_sclass == C_STAT ? mst_file_text : mst_text,
|
||||
objfile);
|
||||
}
|
||||
else
|
||||
{
|
||||
record_minimal_symbol
|
||||
(cs->c_name, cs->c_value,
|
||||
cs->c_sclass == C_STAT ? mst_file_data : mst_data,
|
||||
objfile);
|
||||
}
|
||||
if (SDB_TYPE (cs->c_type))
|
||||
process_coff_symbol (cs, &main_aux, objfile);
|
||||
break;
|
||||
|
||||
case C_FCN:
|
||||
|
@ -1412,7 +1413,6 @@ process_coff_symbol (cs, aux, objfile)
|
|||
= (struct symbol *) obstack_alloc (&objfile->symbol_obstack,
|
||||
sizeof (struct symbol));
|
||||
char *name;
|
||||
struct type *temptype;
|
||||
|
||||
memset (sym, 0, sizeof (struct symbol));
|
||||
name = cs->c_name;
|
||||
|
@ -1502,16 +1502,19 @@ process_coff_symbol (cs, aux, objfile)
|
|||
#endif
|
||||
add_symbol_to_list (sym, &local_symbols);
|
||||
#if !defined (BELIEVE_PCC_PROMOTION) && (TARGET_BYTE_ORDER == BIG_ENDIAN)
|
||||
/* If PCC says a parameter is a short or a char,
|
||||
aligned on an int boundary, realign it to the "little end"
|
||||
of the int. */
|
||||
temptype = lookup_fundamental_type (current_objfile, FT_INTEGER);
|
||||
if (TYPE_LENGTH (SYMBOL_TYPE (sym)) < TYPE_LENGTH (temptype)
|
||||
&& TYPE_CODE (SYMBOL_TYPE (sym)) == TYPE_CODE_INT
|
||||
&& 0 == SYMBOL_VALUE (sym) % TYPE_LENGTH (temptype))
|
||||
{
|
||||
/* If PCC says a parameter is a short or a char,
|
||||
aligned on an int boundary, realign it to the "little end"
|
||||
of the int. */
|
||||
struct type *temptype;
|
||||
temptype = lookup_fundamental_type (current_objfile, FT_INTEGER);
|
||||
if (TYPE_LENGTH (SYMBOL_TYPE (sym)) < TYPE_LENGTH (temptype)
|
||||
&& TYPE_CODE (SYMBOL_TYPE (sym)) == TYPE_CODE_INT
|
||||
&& 0 == SYMBOL_VALUE (sym) % TYPE_LENGTH (temptype))
|
||||
{
|
||||
SYMBOL_VALUE (sym) += TYPE_LENGTH (temptype)
|
||||
- TYPE_LENGTH (SYMBOL_TYPE (sym));
|
||||
SYMBOL_VALUE (sym) +=
|
||||
TYPE_LENGTH (temptype)
|
||||
- TYPE_LENGTH (SYMBOL_TYPE (sym));
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
|
@ -1523,17 +1526,21 @@ process_coff_symbol (cs, aux, objfile)
|
|||
#if !defined (BELIEVE_PCC_PROMOTION)
|
||||
/* FIXME: This should retain the current type, since it's just
|
||||
a register value. gnu@adobe, 26Feb93 */
|
||||
/* If PCC says a parameter is a short or a char,
|
||||
it is really an int. */
|
||||
temptype = lookup_fundamental_type (current_objfile, FT_INTEGER);
|
||||
if (TYPE_LENGTH (SYMBOL_TYPE (sym)) < TYPE_LENGTH (temptype)
|
||||
&& TYPE_CODE (SYMBOL_TYPE (sym)) == TYPE_CODE_INT)
|
||||
{
|
||||
SYMBOL_TYPE (sym) = TYPE_UNSIGNED (SYMBOL_TYPE (sym))
|
||||
? lookup_fundamental_type (current_objfile,
|
||||
FT_UNSIGNED_INTEGER)
|
||||
: temptype;
|
||||
}
|
||||
{
|
||||
/* If PCC says a parameter is a short or a char,
|
||||
it is really an int. */
|
||||
struct type *temptype;
|
||||
temptype =
|
||||
lookup_fundamental_type (current_objfile, FT_INTEGER);
|
||||
if (TYPE_LENGTH (SYMBOL_TYPE (sym)) < TYPE_LENGTH (temptype)
|
||||
&& TYPE_CODE (SYMBOL_TYPE (sym)) == TYPE_CODE_INT)
|
||||
{
|
||||
SYMBOL_TYPE (sym) =
|
||||
(TYPE_UNSIGNED (SYMBOL_TYPE (sym))
|
||||
? lookup_fundamental_type (current_objfile,
|
||||
FT_UNSIGNED_INTEGER)
|
||||
: temptype);
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
|
||||
|
@ -1543,7 +1550,34 @@ process_coff_symbol (cs, aux, objfile)
|
|||
|
||||
/* If type has no name, give it one */
|
||||
if (TYPE_NAME (SYMBOL_TYPE (sym)) == 0)
|
||||
TYPE_NAME (SYMBOL_TYPE (sym)) = concat (SYMBOL_NAME (sym), NULL);
|
||||
{
|
||||
if (TYPE_CODE (SYMBOL_TYPE (sym)) == TYPE_CODE_PTR
|
||||
|| TYPE_CODE (SYMBOL_TYPE (sym)) == TYPE_CODE_FUNC)
|
||||
{
|
||||
/* If we are giving a name to a type such as "pointer to
|
||||
foo" or "function returning foo", we better not set
|
||||
the TYPE_NAME. If the program contains "typedef char
|
||||
*caddr_t;", we don't want all variables of type char
|
||||
* to print as caddr_t. This is not just a
|
||||
consequence of GDB's type management; CC and GCC (at
|
||||
least through version 2.4) both output variables of
|
||||
either type char * or caddr_t with the type
|
||||
refering to the C_TPDEF symbol for caddr_t. If a future
|
||||
compiler cleans this up it GDB is not ready for it
|
||||
yet, but if it becomes ready we somehow need to
|
||||
disable this check (without breaking the PCC/GCC2.4
|
||||
case).
|
||||
|
||||
Sigh.
|
||||
|
||||
Fortunately, this check seems not to be necessary
|
||||
for anything except pointers or functions. */
|
||||
;
|
||||
}
|
||||
else
|
||||
TYPE_NAME (SYMBOL_TYPE (sym)) =
|
||||
concat (SYMBOL_NAME (sym), NULL);
|
||||
}
|
||||
|
||||
/* Keep track of any type which points to empty structured type,
|
||||
so it can be filled from a definition from another file. A
|
||||
|
@ -2017,16 +2051,6 @@ coff_read_enum_type (index, length, lastsym)
|
|||
break;
|
||||
}
|
||||
|
||||
#if 0
|
||||
/* This screws up perfectly good C programs with enums. FIXME. */
|
||||
/* Is this Modula-2's BOOLEAN type? Flag it as such if so. */
|
||||
if(TYPE_NFIELDS(type) == 2 &&
|
||||
((STREQ(TYPE_FIELD_NAME(type,0),"TRUE") &&
|
||||
STREQ(TYPE_FIELD_NAME(type,1),"FALSE")) ||
|
||||
(STREQ(TYPE_FIELD_NAME(type,1),"TRUE") &&
|
||||
STREQ(TYPE_FIELD_NAME(type,0),"FALSE"))))
|
||||
TYPE_CODE(type) = TYPE_CODE_BOOL;
|
||||
#endif
|
||||
return type;
|
||||
}
|
||||
|
||||
|
|
|
@ -26,6 +26,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
|||
#include "command.h"
|
||||
#include "gdbcmd.h"
|
||||
#include "demangle.h"
|
||||
#include "annotate.h"
|
||||
|
||||
int vtblprint; /* Controls printing of vtbl's */
|
||||
int objectprint; /* Controls looking up an object's derived type
|
||||
|
@ -283,21 +284,14 @@ cp_print_value_fields (type, valaddr, stream, format, recurse, pretty,
|
|||
}
|
||||
else
|
||||
{
|
||||
if (annotation_level > 1)
|
||||
{
|
||||
printf_filtered ("\n\032\032field-begin ");
|
||||
print_value_flags (TYPE_FIELD_TYPE (type, i));
|
||||
printf_filtered ("\n");
|
||||
}
|
||||
annotate_field_begin (TYPE_FIELD_TYPE (type, i));
|
||||
|
||||
fprintf_symbol_filtered (stream, TYPE_FIELD_NAME (type, i),
|
||||
language_cplus,
|
||||
DMGL_PARAMS | DMGL_ANSI);
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032field-name-end\n");
|
||||
annotate_field_name_end ();
|
||||
fputs_filtered (" = ", stream);
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032field-value\n");
|
||||
annotate_field_value ();
|
||||
}
|
||||
|
||||
if (TYPE_FIELD_PACKED (type, i))
|
||||
|
@ -332,8 +326,7 @@ cp_print_value_fields (type, valaddr, stream, format, recurse, pretty,
|
|||
0, stream, format, 0, recurse + 1, pretty);
|
||||
}
|
||||
}
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032field-end\n");
|
||||
annotate_field_end ();
|
||||
}
|
||||
|
||||
if (pretty)
|
||||
|
|
52
gdb/infrun.c
52
gdb/infrun.c
|
@ -30,6 +30,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
|||
#include "gdbcmd.h"
|
||||
#include "target.h"
|
||||
#include "thread.h"
|
||||
#include "annotate.h"
|
||||
|
||||
#include <signal.h>
|
||||
|
||||
|
@ -326,6 +327,8 @@ The same program may be running in another process.");
|
|||
else if (!signal_program[stop_signal])
|
||||
stop_signal = TARGET_SIGNAL_0;
|
||||
|
||||
annotate_starting ();
|
||||
|
||||
/* Resume inferior. */
|
||||
resume (oneproc || step || bpstat_should_step (), stop_signal);
|
||||
|
||||
|
@ -434,12 +437,12 @@ wait_for_inferior ()
|
|||
|
||||
while (1)
|
||||
{
|
||||
pid = target_wait (-1, &w);
|
||||
|
||||
/* Clean up saved state that will become invalid. */
|
||||
flush_cached_frames ();
|
||||
registers_changed ();
|
||||
|
||||
pid = target_wait (-1, &w);
|
||||
|
||||
switch (w.kind)
|
||||
{
|
||||
case TARGET_WAITKIND_LOADED:
|
||||
|
@ -458,6 +461,7 @@ wait_for_inferior ()
|
|||
|
||||
case TARGET_WAITKIND_EXITED:
|
||||
target_terminal_ours (); /* Must do this before mourn anyway */
|
||||
annotate_exited (w.value.integer);
|
||||
if (w.value.integer)
|
||||
printf_filtered ("\nProgram exited with code 0%o.\n",
|
||||
(unsigned int)w.value.integer);
|
||||
|
@ -476,10 +480,17 @@ wait_for_inferior ()
|
|||
stop_print_frame = 0;
|
||||
stop_signal = w.value.sig;
|
||||
target_terminal_ours (); /* Must do this before mourn anyway */
|
||||
annotate_signalled ();
|
||||
target_kill (); /* kill mourns as well */
|
||||
printf_filtered ("\nProgram terminated with signal %s, %s.\n",
|
||||
target_signal_to_name (stop_signal),
|
||||
target_signal_to_string (stop_signal));
|
||||
printf_filtered ("\nProgram terminated with signal ");
|
||||
annotate_signal_name ();
|
||||
printf_filtered ("%s", target_signal_to_name (stop_signal));
|
||||
annotate_signal_name_end ();
|
||||
printf_filtered (", ");
|
||||
annotate_signal_string ();
|
||||
printf_filtered ("%s", target_signal_to_string (stop_signal));
|
||||
annotate_signal_string_end ();
|
||||
printf_filtered (".\n");
|
||||
|
||||
printf_filtered ("The program no longer exists.\n");
|
||||
gdb_flush (gdb_stdout);
|
||||
|
@ -561,8 +572,6 @@ wait_for_inferior ()
|
|||
{
|
||||
if (signal_print[stop_signal])
|
||||
{
|
||||
char *signame;
|
||||
|
||||
printed = 1;
|
||||
target_terminal_ours_for_output ();
|
||||
printf_filtered ("\nProgram received signal %s, %s.\n",
|
||||
|
@ -657,7 +666,16 @@ switch_thread:
|
|||
{
|
||||
remove_breakpoints ();
|
||||
resume (1, 0);
|
||||
|
||||
/* FIXME: This is bogus. You can't interact with the
|
||||
inferior except when it is stopped. It apparently
|
||||
happens to work on Irix4, but it depends on /proc
|
||||
allowing us to muck with the memory of a running process,
|
||||
and the kernel deciding to run one instruction of the
|
||||
inferior before it executes our insert_breakpoints code,
|
||||
which seems like an awfully dubious assumption. */
|
||||
insert_breakpoints ();
|
||||
|
||||
continue;
|
||||
}
|
||||
#endif
|
||||
|
@ -781,12 +799,18 @@ switch_thread:
|
|||
|
||||
if (signal_print[stop_signal])
|
||||
{
|
||||
char *signame;
|
||||
printed = 1;
|
||||
target_terminal_ours_for_output ();
|
||||
printf_filtered ("\nProgram received signal %s, %s.\n",
|
||||
target_signal_to_name (stop_signal),
|
||||
target_signal_to_string (stop_signal));
|
||||
annotate_signal ();
|
||||
printf_filtered ("\nProgram received signal ");
|
||||
annotate_signal_name ();
|
||||
printf_filtered ("%s", target_signal_to_name (stop_signal));
|
||||
annotate_signal_name_end ();
|
||||
printf_filtered (", ");
|
||||
annotate_signal_string ();
|
||||
printf_filtered ("%s", target_signal_to_string (stop_signal));
|
||||
annotate_signal_string_end ();
|
||||
printf_filtered (".\n");
|
||||
gdb_flush (gdb_stdout);
|
||||
}
|
||||
if (signal_stop[stop_signal])
|
||||
|
@ -1410,7 +1434,7 @@ Further execution is probably impossible.\n");
|
|||
disable_current_display ();
|
||||
|
||||
if (step_multi && stop_step)
|
||||
return;
|
||||
goto done;
|
||||
|
||||
target_terminal_ours ();
|
||||
|
||||
|
@ -1423,7 +1447,7 @@ Further execution is probably impossible.\n");
|
|||
}
|
||||
|
||||
if (!target_has_stack)
|
||||
return;
|
||||
goto done;
|
||||
|
||||
/* Select innermost stack frame except on return from a stack dummy routine,
|
||||
or if the program has exited. Print it without a level number if
|
||||
|
@ -1465,6 +1489,8 @@ Further execution is probably impossible.\n");
|
|||
stop_pc = read_pc();
|
||||
select_frame (get_current_frame (), 0);
|
||||
}
|
||||
done:
|
||||
annotate_stopped ();
|
||||
}
|
||||
|
||||
static int
|
||||
|
|
|
@ -30,6 +30,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
|||
#include "expression.h"
|
||||
#include "language.h"
|
||||
#include "terminal.h" /* For job_control. */
|
||||
#include "annotate.h"
|
||||
|
||||
#include "getopt.h"
|
||||
|
||||
|
@ -387,10 +388,10 @@ return_to_top_level (reason)
|
|||
switch (reason)
|
||||
{
|
||||
case RETURN_QUIT:
|
||||
printf_unfiltered ("\n\032\032quit\n");
|
||||
annotate_quit ();
|
||||
break;
|
||||
case RETURN_ERROR:
|
||||
printf_unfiltered ("\n\032\032error\n");
|
||||
annotate_error ();
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -105,9 +105,6 @@ extern int info_verbose;
|
|||
|
||||
extern int previous_stab_code;
|
||||
|
||||
/* The BFD for this file -- implicit parameter to next_symbol_text. */
|
||||
static bfd *symfile_bfd;
|
||||
|
||||
/* Name of last function encountered. Used in Solaris to approximate
|
||||
object file boundaries. */
|
||||
static char *last_function_name;
|
||||
|
@ -125,12 +122,13 @@ extern struct complaint repeated_header_complaint;
|
|||
|
||||
extern struct complaint repeated_header_name_complaint;
|
||||
|
||||
#if 0
|
||||
static struct complaint lbrac_unmatched_complaint =
|
||||
{"unmatched Increment Block Entry before symtab pos %d", 0, 0};
|
||||
|
||||
static struct complaint lbrac_mismatch_complaint =
|
||||
{"IBE/IDE symbol mismatch at symtab pos %d", 0, 0};
|
||||
|
||||
#endif
|
||||
|
||||
/* Local function prototypes */
|
||||
static void
|
||||
|
@ -149,9 +147,6 @@ read_os9k_psymtab PARAMS ((struct section_offsets *, struct objfile *,
|
|||
static void
|
||||
init_psymbol_list PARAMS ((struct objfile *));
|
||||
|
||||
static char *
|
||||
os9k_next_symbol_text PARAMS ((void));
|
||||
|
||||
static int
|
||||
fill_sym PARAMS ((FILE *, bfd *));
|
||||
|
||||
|
@ -265,7 +260,7 @@ struct stbsymbol {
|
|||
};
|
||||
#define STBSYMSIZE 10
|
||||
|
||||
static int
|
||||
static void
|
||||
read_minimal_symbols(objfile, section_offsets)
|
||||
struct objfile *objfile;
|
||||
struct section_offsets *section_offsets;
|
||||
|
@ -320,7 +315,7 @@ char buf[64], buf1[128];
|
|||
off += STBSYMSIZE;
|
||||
};
|
||||
install_minimal_symbols (objfile);
|
||||
return 1;
|
||||
return;
|
||||
}
|
||||
|
||||
/* Scan and build partial symbols for a symbol file.
|
||||
|
@ -340,8 +335,6 @@ os9k_symfile_read (objfile, section_offsets, mainline)
|
|||
int mainline; /* FIXME comments above */
|
||||
{
|
||||
bfd *sym_bfd;
|
||||
int val;
|
||||
int stb_exist;
|
||||
struct cleanup *back_to;
|
||||
|
||||
sym_bfd = objfile->obfd;
|
||||
|
@ -401,7 +394,6 @@ static void
|
|||
os9k_symfile_init (objfile)
|
||||
struct objfile *objfile;
|
||||
{
|
||||
int val;
|
||||
bfd *sym_bfd = objfile->obfd;
|
||||
char *name = bfd_get_filename (sym_bfd);
|
||||
char dbgname[512], stbname[512];
|
||||
|
@ -502,7 +494,6 @@ fill_sym (dbg_file, abfd)
|
|||
FILE *dbg_file;
|
||||
bfd *abfd;
|
||||
{
|
||||
short id;
|
||||
short si, nmask;
|
||||
long li;
|
||||
int ii;
|
||||
|
@ -606,10 +597,11 @@ read_os9k_psymtab (section_offsets, objfile, text_addr, text_size)
|
|||
{
|
||||
register struct internal_symstruct *bufp = 0; /* =0 avoids gcc -Wall glitch*/
|
||||
register char *namestring;
|
||||
int nsl;
|
||||
int past_first_source_file = 0;
|
||||
CORE_ADDR last_o_file_start = 0;
|
||||
#if 0
|
||||
struct cleanup *back_to;
|
||||
#endif
|
||||
bfd *abfd;
|
||||
FILE *fp;
|
||||
|
||||
|
|
|
@ -33,6 +33,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
|||
#include "breakpoint.h"
|
||||
#include "demangle.h"
|
||||
#include "valprint.h"
|
||||
#include "annotate.h"
|
||||
|
||||
extern int asm_demangle; /* Whether to demangle syms in asm printouts */
|
||||
extern int addressprint; /* Whether to print hex addresses in HLL " */
|
||||
|
@ -826,34 +827,26 @@ print_command_1 (exp, inspect, voidprint)
|
|||
{
|
||||
int histindex = record_latest_value (val);
|
||||
|
||||
if (annotation_level > 1)
|
||||
{
|
||||
if (histindex >= 0)
|
||||
printf_filtered ("\n\032\032value-history-begin %d ", histindex);
|
||||
else
|
||||
printf_filtered ("\n\032\032value-begin ");
|
||||
print_value_flags (VALUE_TYPE (val));
|
||||
printf_filtered ("\n");
|
||||
}
|
||||
if (histindex >= 0)
|
||||
annotate_value_history_begin (histindex, VALUE_TYPE (val));
|
||||
else
|
||||
annotate_value_begin (VALUE_TYPE (val));
|
||||
|
||||
if (inspect)
|
||||
printf_unfiltered ("\031(gdb-makebuffer \"%s\" %d '(\"", exp, histindex);
|
||||
else
|
||||
if (histindex >= 0) printf_filtered ("$%d = ", histindex);
|
||||
|
||||
if (annotation_level > 1 && histindex >= 0)
|
||||
printf_filtered ("\n\032\032value-history-value\n");
|
||||
if (histindex >= 0)
|
||||
annotate_value_history_value ();
|
||||
|
||||
print_formatted (val, format, fmt.size);
|
||||
printf_filtered ("\n");
|
||||
|
||||
if (annotation_level > 1)
|
||||
{
|
||||
if (histindex >= 0)
|
||||
printf_filtered ("\n\032\032value-history-end\n");
|
||||
else
|
||||
printf_filtered ("\n\032\032value-end\n");
|
||||
}
|
||||
if (histindex >= 0)
|
||||
annotate_value_history_end ();
|
||||
else
|
||||
annotate_value_end ();
|
||||
|
||||
if (inspect)
|
||||
printf_unfiltered("\") )\030");
|
||||
|
@ -920,17 +913,11 @@ output_command (exp, from_tty)
|
|||
|
||||
val = evaluate_expression (expr);
|
||||
|
||||
if (annotation_level > 1)
|
||||
{
|
||||
printf_filtered ("\n\032\032value-begin ");
|
||||
print_value_flags (VALUE_TYPE (val));
|
||||
printf_filtered ("\n");
|
||||
}
|
||||
annotate_value_begin (VALUE_TYPE (val));
|
||||
|
||||
print_formatted (val, format, fmt.size);
|
||||
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032value-end\n");
|
||||
annotate_value_end ();
|
||||
|
||||
do_cleanups (old_chain);
|
||||
}
|
||||
|
@ -1313,11 +1300,16 @@ do_one_display (d)
|
|||
|
||||
current_display_number = d->number;
|
||||
|
||||
printf_filtered ("%d: ", d->number);
|
||||
annotate_display_begin ();
|
||||
printf_filtered ("%d", d->number);
|
||||
annotate_display_number_end ();
|
||||
printf_filtered (": ");
|
||||
if (d->format.size)
|
||||
{
|
||||
CORE_ADDR addr;
|
||||
|
||||
|
||||
annotate_display_format ();
|
||||
|
||||
printf_filtered ("x/");
|
||||
if (d->format.count != 1)
|
||||
printf_filtered ("%d", d->format.count);
|
||||
|
@ -1325,7 +1317,12 @@ do_one_display (d)
|
|||
if (d->format.format != 'i' && d->format.format != 's')
|
||||
printf_filtered ("%c", d->format.size);
|
||||
printf_filtered (" ");
|
||||
|
||||
annotate_display_expression ();
|
||||
|
||||
print_expression (d->exp, gdb_stdout);
|
||||
annotate_display_expression_end ();
|
||||
|
||||
if (d->format.count != 1)
|
||||
printf_filtered ("\n");
|
||||
else
|
||||
|
@ -1334,20 +1331,34 @@ do_one_display (d)
|
|||
addr = value_as_pointer (evaluate_expression (d->exp));
|
||||
if (d->format.format == 'i')
|
||||
addr = ADDR_BITS_REMOVE (addr);
|
||||
|
||||
|
||||
annotate_display_value ();
|
||||
|
||||
do_examine (d->format, addr);
|
||||
}
|
||||
else
|
||||
{
|
||||
annotate_display_format ();
|
||||
|
||||
if (d->format.format)
|
||||
printf_filtered ("/%c ", d->format.format);
|
||||
|
||||
annotate_display_expression ();
|
||||
|
||||
print_expression (d->exp, gdb_stdout);
|
||||
annotate_display_expression_end ();
|
||||
|
||||
printf_filtered (" = ");
|
||||
|
||||
annotate_display_expression ();
|
||||
|
||||
print_formatted (evaluate_expression (d->exp),
|
||||
d->format.format, d->format.size);
|
||||
printf_filtered ("\n");
|
||||
}
|
||||
|
||||
annotate_display_end ();
|
||||
|
||||
gdb_flush (gdb_stdout);
|
||||
current_display_number = -1;
|
||||
}
|
||||
|
@ -1646,13 +1657,11 @@ print_frame_args (func, fi, num, stream)
|
|||
fprintf_filtered (stream, ", ");
|
||||
wrap_here (" ");
|
||||
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032arg-begin\n");
|
||||
annotate_arg_begin ();
|
||||
|
||||
fprintf_symbol_filtered (stream, SYMBOL_SOURCE_NAME (sym),
|
||||
SYMBOL_LANGUAGE (sym), DMGL_PARAMS | DMGL_ANSI);
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032arg-name-end\n");
|
||||
annotate_arg_name_end ();
|
||||
fputs_filtered ("=", stream);
|
||||
|
||||
/* Avoid value_print because it will deref ref parameters. We just
|
||||
|
@ -1662,12 +1671,7 @@ print_frame_args (func, fi, num, stream)
|
|||
2 for each recurse. */
|
||||
val = read_var_value (sym, FRAME_INFO_ID (fi));
|
||||
|
||||
if (annotation_level > 1)
|
||||
{
|
||||
printf_filtered ("\n\032\032arg-value ");
|
||||
print_value_flags (val == NULL ? NULL : VALUE_TYPE (val));
|
||||
printf_filtered ("\n");
|
||||
}
|
||||
annotate_arg_value (val == NULL ? NULL : VALUE_TYPE (val));
|
||||
|
||||
if (val)
|
||||
val_print (VALUE_TYPE (val), VALUE_CONTENTS (val), VALUE_ADDRESS (val),
|
||||
|
@ -1675,8 +1679,7 @@ print_frame_args (func, fi, num, stream)
|
|||
else
|
||||
fputs_filtered ("???", stream);
|
||||
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032arg-end\n");
|
||||
annotate_arg_end ();
|
||||
|
||||
first = 0;
|
||||
}
|
||||
|
|
|
@ -280,15 +280,18 @@ remote_close (quitting)
|
|||
static void
|
||||
get_offsets ()
|
||||
{
|
||||
unsigned char buf [PBUFSIZ];
|
||||
unsigned char buf[PBUFSIZ];
|
||||
int nvals;
|
||||
CORE_ADDR text_addr, data_addr, bss_addr;
|
||||
struct section_offsets *offs;
|
||||
|
||||
putpkt ("qOffsets");
|
||||
|
||||
getpkt (buf, 1);
|
||||
getpkt (buf, 0);
|
||||
|
||||
if (buf[0] == '\000')
|
||||
return; /* Return silently. Stub doesn't support this
|
||||
command. */
|
||||
if (buf[0] == 'E')
|
||||
{
|
||||
warning ("Remote failure reply: %s", buf);
|
||||
|
@ -471,7 +474,6 @@ remote_resume (pid, step, siggnal)
|
|||
|
||||
if (siggnal)
|
||||
{
|
||||
char *name;
|
||||
target_terminal_ours_for_output ();
|
||||
printf_filtered
|
||||
("Can't send signals to a remote system. %s not sent.\n",
|
||||
|
|
16
gdb/source.c
16
gdb/source.c
|
@ -34,6 +34,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
|||
#include "regex.h"
|
||||
#include "symfile.h"
|
||||
#include "objfiles.h"
|
||||
#include "annotate.h"
|
||||
|
||||
#ifndef DIRNAME_SEPARATOR
|
||||
#define DIRNAME_SEPARATOR ':'
|
||||
|
@ -813,12 +814,9 @@ identify_source_line (s, line, mid_statement, pc)
|
|||
if (line > s->nlines)
|
||||
/* Don't index off the end of the line_charpos array. */
|
||||
return 0;
|
||||
/* FIXME-32x64: Need a version of print_address_numeric which does
|
||||
not pass use_local to print_longest. */
|
||||
printf_unfiltered ("\032\032%s:%d:%d:%s:0x%lx\n", s->fullname,
|
||||
line, s->line_charpos[line - 1],
|
||||
mid_statement ? "middle" : "beg",
|
||||
(unsigned long) pc);
|
||||
annotate_source (s->fullname, line, s->line_charpos[line - 1],
|
||||
mid_statement, pc);
|
||||
|
||||
current_source_line = line;
|
||||
first_line_listed = line;
|
||||
last_line_listed = line;
|
||||
|
@ -1042,14 +1040,14 @@ list_command (arg, from_tty)
|
|||
sym = find_pc_function (sal.pc);
|
||||
if (sym)
|
||||
{
|
||||
print_address_numeric (sal.pc, gdb_stdout);
|
||||
print_address_numeric (sal.pc, 1, gdb_stdout);
|
||||
printf_filtered (" is in ");
|
||||
fputs_filtered (SYMBOL_SOURCE_NAME (sym), gdb_stdout);
|
||||
printf_filtered (" (%s:%d).\n", sal.symtab->filename, sal.line);
|
||||
}
|
||||
else
|
||||
{
|
||||
print_address_numeric (sal.pc, gdb_stdout);
|
||||
print_address_numeric (sal.pc, 1, gdb_stdout);
|
||||
printf_filtered (" is at %s:%d.\n",
|
||||
sal.symtab->filename, sal.line);
|
||||
}
|
||||
|
@ -1172,7 +1170,7 @@ line_info (arg, from_tty)
|
|||
|
||||
/* If this is the only line, show the source code. If it could
|
||||
not find the file, don't do anything special. */
|
||||
if (frame_file_full_name && sals.nelts == 1)
|
||||
if (annotation_level && sals.nelts == 1)
|
||||
identify_source_line (sal.symtab, sal.line, 0, start_pc);
|
||||
}
|
||||
else
|
||||
|
|
|
@ -198,6 +198,13 @@ extern void coffstab_build_psymtabs
|
|||
file_ptr stabstroffset,
|
||||
unsigned int stabstrsize));
|
||||
|
||||
extern void stabsect_build_psymtabs
|
||||
PARAMS ((struct objfile *objfile,
|
||||
struct section_offsets *section_offsets,
|
||||
int mainline,
|
||||
char *stab_name,
|
||||
char *stabstr_name));
|
||||
|
||||
extern void elfstab_offset_sections PARAMS ((struct objfile *,
|
||||
struct partial_symtab *));
|
||||
|
||||
|
|
19
gdb/symtab.c
19
gdb/symtab.c
|
@ -111,8 +111,8 @@ void
|
|||
cplusplus_hint (name)
|
||||
char *name;
|
||||
{
|
||||
printf_unfiltered ("Hint: try '%s<TAB> or '%s<ESC-?>\n", name, name);
|
||||
printf_unfiltered ("(Note leading single quote.)\n");
|
||||
printf_filtered ("Hint: try '%s<TAB> or '%s<ESC-?>\n", name, name);
|
||||
printf_filtered ("(Note leading single quote.)\n");
|
||||
}
|
||||
|
||||
/* Check for a symtab of a specific name; first in symtabs, then in
|
||||
|
@ -188,7 +188,9 @@ lookup_symtab (name)
|
|||
char *name;
|
||||
{
|
||||
register struct symtab *s;
|
||||
#if 0
|
||||
register char *copy;
|
||||
#endif
|
||||
|
||||
s = lookup_symtab_1 (name);
|
||||
if (s) return s;
|
||||
|
@ -1811,7 +1813,10 @@ decode_line_1 (argptr, funfirstline, default_symtab, default_line, canonical)
|
|||
struct symtab_and_line val;
|
||||
#endif
|
||||
register char *p, *p1;
|
||||
char *q, *q1, *pp;
|
||||
char *q, *pp;
|
||||
#if 0
|
||||
char *q1;
|
||||
#endif
|
||||
register struct symtab *s;
|
||||
|
||||
register struct symbol *sym;
|
||||
|
@ -1927,7 +1932,7 @@ decode_line_1 (argptr, funfirstline, default_symtab, default_line, canonical)
|
|||
if (opname == NULL)
|
||||
{
|
||||
error_begin ();
|
||||
printf_unfiltered ("no mangling for \"%s\"\n", tmp);
|
||||
printf_filtered ("no mangling for \"%s\"\n", tmp);
|
||||
cplusplus_hint (saved_arg);
|
||||
return_to_top_level (RETURN_ERROR);
|
||||
}
|
||||
|
@ -2021,11 +2026,11 @@ decode_line_1 (argptr, funfirstline, default_symtab, default_line, canonical)
|
|||
tmp = copy;
|
||||
error_begin ();
|
||||
if (tmp[0] == '~')
|
||||
printf_unfiltered
|
||||
printf_filtered
|
||||
("the class `%s' does not have destructor defined\n",
|
||||
SYMBOL_SOURCE_NAME(sym_class));
|
||||
else
|
||||
printf_unfiltered
|
||||
printf_filtered
|
||||
("the class %s does not have any method named %s\n",
|
||||
SYMBOL_SOURCE_NAME(sym_class), tmp);
|
||||
cplusplus_hint (saved_arg);
|
||||
|
@ -2036,7 +2041,7 @@ decode_line_1 (argptr, funfirstline, default_symtab, default_line, canonical)
|
|||
{
|
||||
error_begin ();
|
||||
/* The quotes are important if copy is empty. */
|
||||
printf_unfiltered
|
||||
printf_filtered
|
||||
("can't find class, struct, or union named \"%s\"\n", copy);
|
||||
cplusplus_hint (saved_arg);
|
||||
return_to_top_level (RETURN_ERROR);
|
||||
|
|
|
@ -99,6 +99,7 @@ enum target_signal {
|
|||
/* Used some places (e.g. stop_signal) to record the concept that
|
||||
there is no signal. */
|
||||
TARGET_SIGNAL_0 = 0,
|
||||
TARGET_SIGNAL_FIRST = 0,
|
||||
TARGET_SIGNAL_HUP = 1,
|
||||
TARGET_SIGNAL_INT = 2,
|
||||
TARGET_SIGNAL_QUIT = 3,
|
||||
|
@ -532,6 +533,8 @@ print_section_info PARAMS ((struct target_ops *, bfd *));
|
|||
#define target_has_execution \
|
||||
(current_target->to_has_execution)
|
||||
|
||||
extern void target_link PARAMS ((char *, CORE_ADDR *));
|
||||
|
||||
/* Converts a process id to a string. Usually, the string just contains
|
||||
`process xyz', but on some systems it may contain
|
||||
`process xyz thread abc'. */
|
||||
|
@ -580,10 +583,7 @@ struct section_table {
|
|||
CORE_ADDR addr; /* Lowest address in section */
|
||||
CORE_ADDR endaddr; /* 1+highest address in section */
|
||||
|
||||
/* For the ptx compiler, we can't use the sec_ptr typedef when the field's
|
||||
name is sec_ptr. We really should rename the field (or better yet,
|
||||
the typedef should be bfd_sec_ptr). */
|
||||
struct sec *sec_ptr; /* BFD section pointer */
|
||||
sec_ptr the_bfd_section;
|
||||
|
||||
bfd *bfd; /* BFD file pointer */
|
||||
};
|
||||
|
|
|
@ -36,6 +36,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
|||
#include "demangle.h"
|
||||
#include "expression.h"
|
||||
#include "language.h"
|
||||
#include "annotate.h"
|
||||
|
||||
#include "readline.h"
|
||||
|
||||
|
@ -262,8 +263,7 @@ error_begin ()
|
|||
wrap_here (""); /* Force out any buffered output */
|
||||
gdb_flush (gdb_stdout);
|
||||
|
||||
if (annotation_level > 1)
|
||||
fprintf_filtered (gdb_stderr, "\n\032\032error-begin\n");
|
||||
annotate_error_begin ();
|
||||
|
||||
if (error_pre_print)
|
||||
fprintf_filtered (gdb_stderr, error_pre_print);
|
||||
|
@ -453,8 +453,7 @@ quit ()
|
|||
SERIAL_FLUSH_OUTPUT (gdb_stdout_serial);
|
||||
SERIAL_UN_FDOPEN (gdb_stdout_serial);
|
||||
|
||||
if (annotation_level > 1)
|
||||
fprintf_filtered (gdb_stderr, "\n\032\032error-begin\n");
|
||||
annotate_error_begin ();
|
||||
|
||||
/* Don't use *_filtered; we don't want to prompt the user to continue. */
|
||||
if (error_pre_print)
|
||||
|
|
|
@ -28,6 +28,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
|||
#include "obstack.h"
|
||||
#include "language.h"
|
||||
#include "demangle.h"
|
||||
#include "annotate.h"
|
||||
|
||||
#include <errno.h>
|
||||
|
||||
|
@ -314,8 +315,10 @@ val_print_type_code_int (type, valaddr, stream)
|
|||
printf() that supports "ll" in the format string. We handle these by seeing
|
||||
if the number is actually a long, and if not we just bail out and print the
|
||||
number in hex. The format chars b,h,w,g are from
|
||||
print_scalar_formatted(). USE_LOCAL says whether or not to call the
|
||||
local formatting routine to get the format. */
|
||||
print_scalar_formatted(). If USE_LOCAL, format it according to the current
|
||||
language (this should be used for most integers which GDB prints, the
|
||||
exception is things like protocols where the format of the integer is
|
||||
a protocol thing, not a user-visible thing). */
|
||||
|
||||
void
|
||||
print_longest (stream, format, use_local, val_long)
|
||||
|
@ -600,7 +603,9 @@ val_print_array_elements (type, valaddr, address, stream, format, deref_ref,
|
|||
elttype = TYPE_TARGET_TYPE (type);
|
||||
eltlen = TYPE_LENGTH (elttype);
|
||||
len = TYPE_LENGTH (type) / eltlen;
|
||||
|
||||
|
||||
annotate_array_section_begin (i, elttype);
|
||||
|
||||
for (; i < len && things_printed < print_max; i++)
|
||||
{
|
||||
if (i != 0)
|
||||
|
@ -616,7 +621,7 @@ val_print_array_elements (type, valaddr, address, stream, format, deref_ref,
|
|||
}
|
||||
}
|
||||
wrap_here (n_spaces (2 + 2 * recurse));
|
||||
|
||||
|
||||
rep1 = i + 1;
|
||||
reps = 1;
|
||||
while ((rep1 < len) &&
|
||||
|
@ -626,18 +631,14 @@ val_print_array_elements (type, valaddr, address, stream, format, deref_ref,
|
|||
++rep1;
|
||||
}
|
||||
|
||||
if (annotation_level > 1)
|
||||
{
|
||||
printf_filtered ("\n\032\032array-element-begin %d ", i);
|
||||
print_value_flags (elttype);
|
||||
printf_filtered ("\n");
|
||||
}
|
||||
|
||||
if (reps > repeat_count_threshold)
|
||||
{
|
||||
val_print (elttype, valaddr + i * eltlen, 0, stream, format,
|
||||
deref_ref, recurse + 1, pretty);
|
||||
annotate_elt_rep (reps);
|
||||
fprintf_filtered (stream, " <repeats %u times>", reps);
|
||||
annotate_elt_rep_end ();
|
||||
|
||||
i = rep1 - 1;
|
||||
things_printed += repeat_count_threshold;
|
||||
}
|
||||
|
@ -645,11 +646,11 @@ val_print_array_elements (type, valaddr, address, stream, format, deref_ref,
|
|||
{
|
||||
val_print (elttype, valaddr + i * eltlen, 0, stream, format,
|
||||
deref_ref, recurse + 1, pretty);
|
||||
annotate_elt ();
|
||||
things_printed++;
|
||||
}
|
||||
if (annotation_level > 1)
|
||||
printf_filtered ("\n\032\032array-element-end\n");
|
||||
}
|
||||
annotate_array_section_end ();
|
||||
if (i < len)
|
||||
{
|
||||
fprintf_filtered (stream, "...");
|
||||
|
@ -862,13 +863,13 @@ val_print_string (addr, len, stream)
|
|||
if (errcode == EIO)
|
||||
{
|
||||
fprintf_filtered (stream, " <Address ");
|
||||
print_address_numeric (addr, stream);
|
||||
print_address_numeric (addr, 1, stream);
|
||||
fprintf_filtered (stream, " out of bounds>");
|
||||
}
|
||||
else
|
||||
{
|
||||
fprintf_filtered (stream, " <Error reading address ");
|
||||
print_address_numeric (addr, stream);
|
||||
print_address_numeric (addr, 1, stream);
|
||||
fprintf_filtered (stream, ": %s>", safe_strerror (errcode));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue