From: Fernando Nasser <fnasser@cygnus.com>
To: Momchil Velikov <velco@fadata.bg>
Cc: GDB Patch List <gdb-patches@sourceware.cygnus.com>
Subject: Re: [Fwd: [patch] UDP transport support]
Date: Fri, 31 Mar 2000 10:43:00 -0000 [thread overview]
Message-ID: <38E4F1CD.9265272D@cygnus.com> (raw)
In-Reply-To: <38E39B66.3857BDFD@fadata.bg>
> Do you mind changing the syntax the parameter NAME to
> serial.c:serial_open () to
> tcp:<host>:<port>, and
> udp:<host>:<port>
> for TCP and UDP connections, respectively ?
Hi,
Please make sure tcp is assumed by default so the current behavior is not changed.
--
Fernando Nasser
Red Hat - Toronto E-Mail: fnasser@cygnus.com
2323 Yonge Street, Suite #300 Tel: 416-482-2661 ext. 311
Toronto, Ontario M4P 2C9 Fax: 416-482-6299
From jlarmour@redhat.co.uk Fri Mar 31 11:30:00 2000
From: jlarmour@redhat.co.uk (Jonathan Larmour)
To: ac131313@cygnus.com
Cc: gdb-patches@sourceware.cygnus.com
Subject: Re: [RFC] qfThreadExtraInfo -> qThreadExtraInfo
Date: Fri, 31 Mar 2000 11:30:00 -0000
Message-id: <200003311930.UAA32741@murgh.cygnus.co.uk>
References: <38E15968.BE3BC597@cygnus.com>
X-SW-Source: 2000-03/msg00701.html
Content-length: 496
In article < 38E15968.BE3BC597@cygnus.com > you write:
>Index: gdb/ChangeLog
>Tue Mar 28 18:28:40 2000 Andrew Cagney <cagney@b1.cygnus.com>
>
> * remote.c (remote_threads_extra_info): Replace qfThreadExtraInfo
> with qThreadInfo.
>
>Index: gdb/doc/ChangeLog
>Tue Mar 28 18:28:45 2000 Andrew Cagney <cagney@b1.cygnus.com>
>
> * gdb.texinfo (Protocol): Replace ``qfThreadExtraInfo'' with
> qThreadInfo.
FYI this ChangeLog doesn't fit the change - it is replaced with
qThreadExtraInfo.
Jifl
From eliz@delorie.com Fri Mar 31 15:08:00 2000
From: Eli Zaretskii <eliz@delorie.com>
To: ac131313@cygnus.com
Cc: gdb-patches@sourceware.cygnus.com
Subject: Re: GDB 5 2000-03-29
Date: Fri, 31 Mar 2000 15:08:00 -0000
Message-id: <200003312306.SAA07143@indy.delorie.com>
References: <38E17D2C.F7EB65B9@cygnus.com>
X-SW-Source: 2000-03/msg00702.html
Content-length: 1747
> For the watchpoint patches, if at least some have been addressed, I'd
> like to put the rest off.
All of them are addressed now. See below.
> Watch point related patches (Eli Zaretskii, Michael Snyder, ???)
>
> Eli writes: This doesn't include the watchpoint-related patches I sent
> beginning with August or September, and mentioned them again three
> weeks ago. Here again are the pointers to the relevant messages:
>
> Hardware breakpoints and watchpoints: patches
> http://sourceware.cygnus.com/ml/gdb-patches/1999-q3/msg00173.html
>
> Re: Hardware breakpoints and watchpoints: patches
> http://sourceware.cygnus.com/ml/gdb-patches/1999-q3/msg00204.html
>
> Re: Hardware breakpoints and watchpoints: patches
> http://sourceware.cygnus.com/ml/gdb-patches/1999-q4/msg00200.html
>
> Hardware watchpoints for bitfields
> http://sourceware.cygnus.com/ml/gdb-patches/1999-q4/msg00201.html
Michael posted about a week ago several messages saying that my
patches were checked in. The relevant messages are:
http://sourceware.cygnus.com/ml/gdb-patches/2000-q1/msg00873.html
http://sourceware.cygnus.com/ml/gdb-patches/2000-q1/msg00840.html
So I'm quite happy with this (thanks, Michael!).
> +MI documentation in GDB user guide. (Andrew Cagney, Elena Zannoni,
> +Stan Shebs, anyone else?)
> +
> +> (Are there plans to make gdbmi.texi be part of the manual as well?)
If no one objects, I can submit changes to incorporate gdbmi.texi into
the manual.
> +[PATCH] GDB command-line switches and annotations docs
> + http://sourceware.cygnus.com/ml/gdb-patches/2000-q1/msg00639.html
I believe this is already checked in (I commited these patches two weeks
ago). See
http://sourceware.cygnus.com/ml/gdb-patches/2000-q1/msg00739.html
From ac131313@cygnus.com Fri Mar 31 15:11:00 2000
From: Andrew Cagney <ac131313@cygnus.com>
To: GDB Patches <gdb-patches@sourceware.cygnus.com>
Subject: [PATCH] gdbarch fixes to defaults (cleanup part 2)
Date: Fri, 31 Mar 2000 15:11:00 -0000
Message-id: <38E53052.BEB69EA5@cygnus.com>
X-SW-Source: 2000-03/msg00703.html
Content-length: 52996
Hello,
The attatched patch fixes a rather painful bug in the gdbarch code where
it would allow the specification of default architecture vector methods
but then always consider that default to be illegal.
It should now correctly handle the two cases:
o user specified default that is legal
o user specified default that is illegal
Hopefully this will make it easier people changing an existing target to
a gdbarch. This patch also adds defaults for a number of recently added
targets.
The remaining parts to this series of patches will:
o Make gdbarch.[hc] responsible for
default architecture vector when
multi-arch is disabled.
o Move more code to gdbarch-utils.[hc]
They are less important.
For the sake of readability, I've included the patches to gdbarch.[hc]
(they are far easier to read than gdbarch.sh :-).
Its been tested on d10v-elf (multiarch) and Solaris 2.5.1 native.
Andrew
Fri Mar 31 08:59:58 2000 Andrew Cagney <cagney@b1.cygnus.com>
* gdbarch-utils.h, gdbarch-utils.c: New files.
* Makefile.in (SFILES, COMMON_OBS): Update.
(gdbarch_utils_h) Define.
(gdbarch-utils.o): Add dependencies.
* gdbarch.c, gdbarch.sh: Include "gdbarch-utils.h". Fix code
handling default method values.
(startup_gdbarch): Rename default_gdbarch, name misleading.
(breakpoint_from_pc): Default to legacy_breakpoint_from_pc.
(register_name): Default to legacy_register_name.
(call_dummy_words): Default to legacy_call_dummy_words.
(sizeof_call_dummy_words): Default to
legacy_sizeof_call_dummy_words.
(register_convertible): Default to
generic_register_convertible_not.
(breakpoint_from_pc): Default to legacy_breakpoint_from_pc.
(remote_translate_xfer_address): Default to
generic_remote_translate_xfer_address.
(frameless_function_invocation): Default to
generic_frameless_function_invocation_not.
Index: gdbarch.c
===================================================================
RCS file: /cvs/src/src/gdb/gdbarch.c,v
retrieving revision 1.6
diff -p -r1.6 gdbarch.c
*** gdbarch.c 2000/03/30 05:32:23 1.6
--- gdbarch.c 2000/03/31 22:49:48
***************
*** 34,39 ****
--- 34,40 ----
#include "defs.h"
+ #include "gdbarch-utils.h"
#if GDB_MULTI_ARCH
#include "gdbcmd.h"
*************** struct gdbarch
*** 117,123 ****
gdbarch_dump(): Add a fprintf_unfiltered call to so that the new
field is dumped out
! ``default_gdbarch()'': Append an initial value to the static
variable (base values on the host's c-type system).
get_gdbarch(): Implement the set/get functions (probably using
--- 118,124 ----
gdbarch_dump(): Add a fprintf_unfiltered call to so that the new
field is dumped out
! ``startup_gdbarch()'': Append an initial value to the static
variable (base values on the host's c-type system).
get_gdbarch(): Implement the set/get functions (probably using
*************** struct gdbarch
*** 216,222 ****
extern const struct bfd_arch_info bfd_default_arch_struct;
! struct gdbarch default_gdbarch = {
/* basic architecture information */
&bfd_default_arch_struct,
BIG_ENDIAN,
--- 217,223 ----
extern const struct bfd_arch_info bfd_default_arch_struct;
! struct gdbarch startup_gdbarch = {
/* basic architecture information */
&bfd_default_arch_struct,
BIG_ENDIAN,
*************** struct gdbarch default_gdbarch = {
*** 308,316 ****
0,
0,
0,
! /* default_gdbarch() */
};
! struct gdbarch *current_gdbarch = &default_gdbarch;
/* Create a new ``struct gdbarch'' based in information provided by
--- 309,317 ----
0,
0,
0,
! /* startup_gdbarch() */
};
! struct gdbarch *current_gdbarch = &startup_gdbarch;
/* Create a new ``struct gdbarch'' based in information provided by
*************** gdbarch_alloc (const struct gdbarch_info
*** 334,339 ****
--- 335,341 ----
gdbarch->sp_regnum = -1;
gdbarch->fp_regnum = -1;
gdbarch->pc_regnum = -1;
+ gdbarch->register_name = legacy_register_name;
gdbarch->register_size = -1;
gdbarch->register_bytes = -1;
gdbarch->max_register_raw_size = -1;
*************** gdbarch_alloc (const struct gdbarch_info
*** 344,356 ****
--- 346,364 ----
gdbarch->call_dummy_breakpoint_offset_p = -1;
gdbarch->call_dummy_length = -1;
gdbarch->call_dummy_p = -1;
+ gdbarch->call_dummy_words = legacy_call_dummy_words;
+ gdbarch->sizeof_call_dummy_words = legacy_sizeof_call_dummy_words;
gdbarch->call_dummy_stack_adjust_p = -1;
gdbarch->coerce_float_to_double = default_coerce_float_to_double;
+ gdbarch->register_convertible = generic_register_convertible_not;
+ gdbarch->breakpoint_from_pc = legacy_breakpoint_from_pc;
gdbarch->memory_insert_breakpoint = default_memory_insert_breakpoint;
gdbarch->memory_remove_breakpoint = default_memory_remove_breakpoint;
gdbarch->decr_pc_after_break = -1;
gdbarch->function_start_offset = -1;
+ gdbarch->remote_translate_xfer_address = generic_remote_translate_xfer_address;
gdbarch->frame_args_skip = -1;
+ gdbarch->frameless_function_invocation = generic_frameless_function_invocation_not;
/* gdbarch_alloc() */
return gdbarch;
*************** verify_gdbarch (struct gdbarch *gdbarch)
*** 384,393 ****
if (gdbarch->bfd_arch_info == NULL)
internal_error ("verify_gdbarch: bfd_arch_info unset");
/* Check those that need to be defined for the given multi-arch level. */
if ((GDB_MULTI_ARCH >= 1)
- && (0))
- internal_error ("gdbarch: verify_gdbarch: bfd_vma_bit invalid");
- if ((GDB_MULTI_ARCH >= 1)
&& (gdbarch->ptr_bit == 0))
internal_error ("gdbarch: verify_gdbarch: ptr_bit invalid");
if ((GDB_MULTI_ARCH >= 1)
--- 392,399 ----
if (gdbarch->bfd_arch_info == NULL)
internal_error ("verify_gdbarch: bfd_arch_info unset");
/* Check those that need to be defined for the given multi-arch level. */
+ /* Skip verify of bfd_vma_bit, invalid_p == 0 */
if ((GDB_MULTI_ARCH >= 1)
&& (gdbarch->ptr_bit == 0))
internal_error ("gdbarch: verify_gdbarch: ptr_bit invalid");
if ((GDB_MULTI_ARCH >= 1)
*************** verify_gdbarch (struct gdbarch *gdbarch)
*** 441,449 ****
if ((GDB_MULTI_ARCH >= 2)
&& (gdbarch->pc_regnum == -1))
internal_error ("gdbarch: verify_gdbarch: pc_regnum invalid");
! if ((GDB_MULTI_ARCH >= 2)
! && (gdbarch->register_name == 0))
! internal_error ("gdbarch: verify_gdbarch: register_name invalid");
if ((GDB_MULTI_ARCH >= 2)
&& (gdbarch->register_size == -1))
internal_error ("gdbarch: verify_gdbarch: register_size invalid");
--- 447,453 ----
if ((GDB_MULTI_ARCH >= 2)
&& (gdbarch->pc_regnum == -1))
internal_error ("gdbarch: verify_gdbarch: pc_regnum invalid");
! /* Skip verify of register_name, invalid_p == 0 */
if ((GDB_MULTI_ARCH >= 2)
&& (gdbarch->register_size == -1))
internal_error ("gdbarch: verify_gdbarch: register_size invalid");
*************** verify_gdbarch (struct gdbarch *gdbarch)
*** 495,500 ****
--- 499,506 ----
if ((GDB_MULTI_ARCH >= 1)
&& (gdbarch->call_dummy_p == -1))
internal_error ("gdbarch: verify_gdbarch: call_dummy_p invalid");
+ /* Skip verify of call_dummy_words, invalid_p == 0 */
+ /* Skip verify of sizeof_call_dummy_words, invalid_p == 0 */
if ((GDB_MULTI_ARCH >= 1)
&& (gdbarch->call_dummy_stack_adjust_p == -1))
internal_error ("gdbarch: verify_gdbarch: call_dummy_stack_adjust_p invalid");
*************** verify_gdbarch (struct gdbarch *gdbarch)
*** 504,525 ****
if ((GDB_MULTI_ARCH >= 2)
&& (gdbarch->fix_call_dummy == 0))
internal_error ("gdbarch: verify_gdbarch: fix_call_dummy invalid");
! if ((GDB_MULTI_ARCH >= 2)
! && (gdbarch->coerce_float_to_double == default_coerce_float_to_double))
! internal_error ("gdbarch: verify_gdbarch: coerce_float_to_double invalid");
if ((GDB_MULTI_ARCH >= 1)
&& (gdbarch->get_saved_register == 0))
internal_error ("gdbarch: verify_gdbarch: get_saved_register invalid");
! if ((GDB_MULTI_ARCH >= 1)
! && (gdbarch->register_convertible == 0))
! internal_error ("gdbarch: verify_gdbarch: register_convertible invalid");
if ((GDB_MULTI_ARCH >= 2)
- && (gdbarch->register_convert_to_virtual == 0))
- internal_error ("gdbarch: verify_gdbarch: register_convert_to_virtual invalid");
- if ((GDB_MULTI_ARCH >= 2)
- && (gdbarch->register_convert_to_raw == 0))
- internal_error ("gdbarch: verify_gdbarch: register_convert_to_raw invalid");
- if ((GDB_MULTI_ARCH >= 2)
&& (gdbarch->extract_return_value == 0))
internal_error ("gdbarch: verify_gdbarch: extract_return_value invalid");
if ((GDB_MULTI_ARCH >= 1)
--- 510,523 ----
if ((GDB_MULTI_ARCH >= 2)
&& (gdbarch->fix_call_dummy == 0))
internal_error ("gdbarch: verify_gdbarch: fix_call_dummy invalid");
! /* Skip verify of coerce_float_to_double, invalid_p == 0 */
if ((GDB_MULTI_ARCH >= 1)
&& (gdbarch->get_saved_register == 0))
internal_error ("gdbarch: verify_gdbarch: get_saved_register invalid");
! /* Skip verify of register_convertible, invalid_p == 0 */
! /* Skip verify of register_convert_to_virtual, invalid_p == 0 */
! /* Skip verify of register_convert_to_raw, invalid_p == 0 */
if ((GDB_MULTI_ARCH >= 2)
&& (gdbarch->extract_return_value == 0))
internal_error ("gdbarch: verify_gdbarch: extract_return_value invalid");
if ((GDB_MULTI_ARCH >= 1)
*************** verify_gdbarch (struct gdbarch *gdbarch)
*** 534,546 ****
if ((GDB_MULTI_ARCH >= 2)
&& (gdbarch->pop_frame == 0))
internal_error ("gdbarch: verify_gdbarch: pop_frame invalid");
if ((GDB_MULTI_ARCH >= 2)
- && (gdbarch->d10v_make_daddr == 0))
- internal_error ("gdbarch: verify_gdbarch: d10v_make_daddr invalid");
- if ((GDB_MULTI_ARCH >= 2)
- && (gdbarch->d10v_make_iaddr == 0))
- internal_error ("gdbarch: verify_gdbarch: d10v_make_iaddr invalid");
- if ((GDB_MULTI_ARCH >= 2)
&& (gdbarch->d10v_daddr_p == 0))
internal_error ("gdbarch: verify_gdbarch: d10v_daddr_p invalid");
if ((GDB_MULTI_ARCH >= 2)
--- 532,540 ----
if ((GDB_MULTI_ARCH >= 2)
&& (gdbarch->pop_frame == 0))
internal_error ("gdbarch: verify_gdbarch: pop_frame invalid");
+ /* Skip verify of d10v_make_daddr, invalid_p == 0 */
+ /* Skip verify of d10v_make_iaddr, invalid_p == 0 */
if ((GDB_MULTI_ARCH >= 2)
&& (gdbarch->d10v_daddr_p == 0))
internal_error ("gdbarch: verify_gdbarch: d10v_daddr_p invalid");
if ((GDB_MULTI_ARCH >= 2)
*************** verify_gdbarch (struct gdbarch *gdbarch)
*** 576,605 ****
if ((GDB_MULTI_ARCH >= 2)
&& (gdbarch->inner_than == 0))
internal_error ("gdbarch: verify_gdbarch: inner_than invalid");
if ((GDB_MULTI_ARCH >= 2)
- && (gdbarch->breakpoint_from_pc == 0))
- internal_error ("gdbarch: verify_gdbarch: breakpoint_from_pc invalid");
- if ((GDB_MULTI_ARCH >= 2)
- && (0))
- internal_error ("gdbarch: verify_gdbarch: memory_insert_breakpoint invalid");
- if ((GDB_MULTI_ARCH >= 2)
- && (0))
- internal_error ("gdbarch: verify_gdbarch: memory_remove_breakpoint invalid");
- if ((GDB_MULTI_ARCH >= 2)
&& (gdbarch->decr_pc_after_break == -1))
internal_error ("gdbarch: verify_gdbarch: decr_pc_after_break invalid");
if ((GDB_MULTI_ARCH >= 2)
&& (gdbarch->function_start_offset == -1))
internal_error ("gdbarch: verify_gdbarch: function_start_offset invalid");
! if ((GDB_MULTI_ARCH >= 2)
! && (gdbarch->remote_translate_xfer_address == 0))
! internal_error ("gdbarch: verify_gdbarch: remote_translate_xfer_address invalid");
if ((GDB_MULTI_ARCH >= 2)
&& (gdbarch->frame_args_skip == -1))
internal_error ("gdbarch: verify_gdbarch: frame_args_skip invalid");
! if ((GDB_MULTI_ARCH >= 2)
! && (gdbarch->frameless_function_invocation == 0))
! internal_error ("gdbarch: verify_gdbarch: frameless_function_invocation invalid");
if ((GDB_MULTI_ARCH >= 2)
&& (gdbarch->frame_chain == 0))
internal_error ("gdbarch: verify_gdbarch: frame_chain invalid");
--- 570,589 ----
if ((GDB_MULTI_ARCH >= 2)
&& (gdbarch->inner_than == 0))
internal_error ("gdbarch: verify_gdbarch: inner_than invalid");
+ /* Skip verify of breakpoint_from_pc, invalid_p == 0 */
+ /* Skip verify of memory_insert_breakpoint, invalid_p == 0 */
+ /* Skip verify of memory_remove_breakpoint, invalid_p == 0 */
if ((GDB_MULTI_ARCH >= 2)
&& (gdbarch->decr_pc_after_break == -1))
internal_error ("gdbarch: verify_gdbarch: decr_pc_after_break invalid");
if ((GDB_MULTI_ARCH >= 2)
&& (gdbarch->function_start_offset == -1))
internal_error ("gdbarch: verify_gdbarch: function_start_offset invalid");
! /* Skip verify of remote_translate_xfer_address, invalid_p == 0 */
if ((GDB_MULTI_ARCH >= 2)
&& (gdbarch->frame_args_skip == -1))
internal_error ("gdbarch: verify_gdbarch: frame_args_skip invalid");
! /* Skip verify of frameless_function_invocation, invalid_p == 0 */
if ((GDB_MULTI_ARCH >= 2)
&& (gdbarch->frame_chain == 0))
internal_error ("gdbarch: verify_gdbarch: frame_chain invalid");
*************** gdbarch_byte_order (struct gdbarch *gdba
*** 971,978 ****
int
gdbarch_bfd_vma_bit (struct gdbarch *gdbarch)
{
! if (0)
! internal_error ("gdbarch: gdbarch_bfd_vma_bit invalid");
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_bfd_vma_bit called\n");
return gdbarch->bfd_vma_bit;
--- 955,961 ----
int
gdbarch_bfd_vma_bit (struct gdbarch *gdbarch)
{
! /* Skip verify of bfd_vma_bit, invalid_p == 0 */
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_bfd_vma_bit called\n");
return gdbarch->bfd_vma_bit;
*************** set_gdbarch_call_dummy_p (struct gdbarch
*** 1600,1605 ****
--- 1583,1589 ----
LONGEST *
gdbarch_call_dummy_words (struct gdbarch *gdbarch)
{
+ /* Skip verify of call_dummy_words, invalid_p == 0 */
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_call_dummy_words called\n");
return gdbarch->call_dummy_words;
*************** set_gdbarch_call_dummy_words (struct gdb
*** 1615,1620 ****
--- 1599,1605 ----
int
gdbarch_sizeof_call_dummy_words (struct gdbarch *gdbarch)
{
+ /* Skip verify of sizeof_call_dummy_words, invalid_p == 0 */
if (gdbarch_debug >= 2)
fprintf_unfiltered (gdb_stdlog, "gdbarch_sizeof_call_dummy_words called\n");
return gdbarch->sizeof_call_dummy_words;
Index: Makefile.in
===================================================================
RCS file: /cvs/src/src/gdb/Makefile.in,v
retrieving revision 1.17
diff -p -r1.17 Makefile.in
*** Makefile.in 2000/03/28 21:19:04 1.17
--- Makefile.in 2000/03/31 22:49:44
*************** SFILES = ax-general.c ax-gdb.c bcache.c
*** 466,472 ****
demangle.c dwarfread.c dwarf2read.c elfread.c environ.c eval.c \
event-loop.c event-top.c \
expprint.c f-exp.y f-lang.c f-typeprint.c f-valprint.c \
! findvar.c gdbarch.c gdbtypes.c \
inf-loop.c infcmd.c inflow.c infrun.c language.c \
kod.c kod-cisco.c \
ui-out.c cli-out.c \
--- 466,472 ----
demangle.c dwarfread.c dwarf2read.c elfread.c environ.c eval.c \
event-loop.c event-top.c \
expprint.c f-exp.y f-lang.c f-typeprint.c f-valprint.c \
! findvar.c gdbarch.c gdbarch-utils.c gdbtypes.c \
inf-loop.c infcmd.c inflow.c infrun.c language.c \
kod.c kod-cisco.c \
ui-out.c cli-out.c \
*************** remote_h = remote.h
*** 548,553 ****
--- 548,554 ----
version_h = version.h
ui_out_h = ui-out.h
cli_out_h = cli-out.h
+ gdbarch_utils_h = gdbarch-utils.h
# Header files that need to have srcdir added. Note that in the cases
# where we use a macro like $(gdbcmd_h), things are carefully arranged
*************** COMMON_OBS = version.o blockframe.o brea
*** 605,611 ****
symtab.o symfile.o symmisc.o infcmd.o infrun.o command.o \
expprint.o environ.o \
event-loop.o event-top.o inf-loop.o \
! gdbarch.o gdbtypes.o copying.o $(DEPFILES) \
mem-break.o target.o parse.o language.o $(YYOBJ) buildsym.o \
kod.o kod-cisco.o \
gdb-events.o \
--- 606,612 ----
symtab.o symfile.o symmisc.o infcmd.o infrun.o command.o \
expprint.o environ.o \
event-loop.o event-top.o inf-loop.o \
! gdbarch.o gdbarch-utils.o gdbtypes.o copying.o $(DEPFILES) \
mem-break.o target.o parse.o language.o $(YYOBJ) buildsym.o \
kod.o kod-cisco.o \
gdb-events.o \
*************** tracepoint.o: tracepoint.c $(defs_h) $(s
*** 1353,1358 ****
--- 1354,1362 ----
gdbarch.o: gdbarch.c $(defs_h) $(bfd_h) $(gdbcmd_h)
+ gdbarch-utils.o: gdbarch-utils.c $(defs_h) $(bfd_h) $(gdbcmd_h) \
+ $(gdbarch_utils_h)
+
gdbtypes.o: gdbtypes.c $(bfd_h) complaints.h $(defs_h) $(expression_h) \
$(gdbtypes_h) language.h objfiles.h symfile.h $(symtab_h) target.h \
$(value_h) gdb_string.h
*************** minsyms.o: minsyms.c $(bfd_h) $(defs_h)
*** 1522,1527 ****
--- 1526,1532 ----
mips-nat.o: mips-nat.c $(defs_h) $(gdbcore_h) $(inferior_h)
mips-tdep.o: mips-tdep.c $(defs_h) $(gdbcmd_h) $(gdbcore_h) \
+ $(gdbarch_utils_h) \
$(inferior_h) language.h objfiles.h symfile.h gdb_string.h
mipsread.o: mipsread.c buildsym.h complaints.h $(bfd_h) $(defs_h) \
Index: gdbarch-utils.c
===================================================================
RCS file: gdbarch-utils.c
diff -N gdbarch-utils.c
*** /dev/null Tue May 5 13:32:27 1998
--- gdbarch-utils.c Fri Mar 31 14:49:44 2000
***************
*** 0 ****
--- 1,137 ----
+ /* Dynamic architecture support for GDB, the GNU debugger.
+ Copyright 1998-1999, 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., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+ #include "defs.h"
+
+ #if GDB_MULTI_ARCH
+ #include "gdbcmd.h"
+ #include "inferior.h" /* enum CALL_DUMMY_LOCATION et.al. */
+ #else
+ /* Just include everything in sight so that the every old definition
+ of macro is visible. */
+ #include "gdb_string.h"
+ #include <ctype.h>
+ #include "symtab.h"
+ #include "frame.h"
+ #include "inferior.h"
+ #include "breakpoint.h"
+ #include "gdb_wait.h"
+ #include "gdbcore.h"
+ #include "gdbcmd.h"
+ #include "target.h"
+ #include "gdbthread.h"
+ #include "annotate.h"
+ #include "symfile.h" /* for overlay functions */
+ #endif
+
+ /* Convenience macro for allocting typesafe memory. */
+
+ #ifndef XMALLOC
+ #define XMALLOC(TYPE) (TYPE*) xmalloc (sizeof (TYPE))
+ #endif
+
+
+ /* Use the program counter to determine the contents and size
+ of a breakpoint instruction. If no target-dependent macro
+ BREAKPOINT_FROM_PC has been defined to implement this function,
+ assume that the breakpoint doesn't depend on the PC, and
+ use the values of the BIG_BREAKPOINT and LITTLE_BREAKPOINT macros.
+ Return a pointer to a string of bytes that encode a breakpoint
+ instruction, stores the length of the string to *lenptr,
+ and optionally adjust the pc to point to the correct memory location
+ for inserting the breakpoint. */
+
+ unsigned char *
+ legacy_breakpoint_from_pc (CORE_ADDR * pcptr, int *lenptr)
+ {
+ /* {BIG_,LITTLE_}BREAKPOINT is the sequence of bytes we insert for a
+ breakpoint. On some machines, breakpoints are handled by the
+ target environment and we don't have to worry about them here. */
+ #ifdef BIG_BREAKPOINT
+ if (TARGET_BYTE_ORDER == BIG_ENDIAN)
+ {
+ static unsigned char big_break_insn[] = BIG_BREAKPOINT;
+ *lenptr = sizeof (big_break_insn);
+ return big_break_insn;
+ }
+ #endif
+ #ifdef LITTLE_BREAKPOINT
+ if (TARGET_BYTE_ORDER != BIG_ENDIAN)
+ {
+ static unsigned char little_break_insn[] = LITTLE_BREAKPOINT;
+ *lenptr = sizeof (little_break_insn);
+ return little_break_insn;
+ }
+ #endif
+ #ifdef BREAKPOINT
+ {
+ static unsigned char break_insn[] = BREAKPOINT;
+ *lenptr = sizeof (break_insn);
+ return break_insn;
+ }
+ #endif
+ *lenptr = 0;
+ return NULL;
+ }
+
+ int
+ generic_frameless_function_invocation_not (struct frame_info *fi)
+ {
+ return 0;
+ }
+
+ char *
+ legacy_register_name (int i)
+ {
+ #ifdef REGISTER_NAMES
+ static char *names[] = REGISTER_NAMES;
+ if (i < 0 || i >= (sizeof (names) / sizeof (*names)))
+ return NULL;
+ else
+ return names[i];
+ #else
+ internal_error ("legacy_register_name: called.");
+ return NULL;
+ #endif
+ }
+
+ #if defined (CALL_DUMMY)
+ LONGEST legacy_call_dummy_words[] = CALL_DUMMY;
+ #else
+ LONGEST legacy_call_dummy_words[1];
+ #endif
+ int legacy_sizeof_call_dummy_words = sizeof (legacy_call_dummy_words);
+
+ void
+ generic_remote_translate_xfer_address (CORE_ADDR gdb_addr, int gdb_len,
+ CORE_ADDR * rem_addr, int *rem_len)
+ {
+ *rem_addr = gdb_addr;
+ *rem_len = gdb_len;
+ }
+
+ /* */
+
+ extern initialize_file_ftype __initialize_gdbarch_utils;
+
+ void
+ __initialize_gdbarch_utils (void)
+ {
+ }
Index: gdbarch-utils.h
===================================================================
RCS file: gdbarch-utils.h
diff -N gdbarch-utils.h
*** /dev/null Tue May 5 13:32:27 1998
--- gdbarch-utils.h Fri Mar 31 14:49:44 2000
***************
*** 0 ****
--- 1,52 ----
+ /* Dynamic architecture support for GDB, the GNU debugger.
+ Copyright 1998-2000, 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., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+ #ifndef GDBARCH_UTILS_H
+ #define GDBARCH_UTILS_H
+
+ /* gdbarch trace variable */
+ extern int gdbarch_debug;
+
+ /* Fallback for register convertible. */
+ extern gdbarch_register_convertible_ftype generic_register_convertible_not;
+
+ /* Helper function for targets that don't know how my arguments are
+ being passed */
+ extern gdbarch_frame_num_args_ftype frame_num_args_unknown;
+
+ /* Implementation of breakpoint from PC using any of the deprecated
+ macros BREAKPOINT, LITTLE_BREAKPOINT, BIG_BREAPOINT. For legacy
+ targets that don't yet implement their own breakpoint_from_pc(). */
+ extern gdbarch_breakpoint_from_pc_ftype legacy_breakpoint_from_pc;
+
+ /* Frameless functions not identifable. */
+ extern gdbarch_frameless_function_invocation_ftype generic_frameless_function_invocation_not;
+
+ /* Map onto old REGISTER_NAMES. */
+ extern char *legacy_register_name (int i);
+
+ /* Backward compatible call_dummy_words. */
+ extern LONGEST legacy_call_dummy_words[];
+ extern int legacy_sizeof_call_dummy_words;
+
+ /* Typical remote_translate_xfer_address */
+ extern gdbarch_remote_translate_xfer_address_ftype generic_remote_translate_xfer_address;
+
+ #endif
Index: gdbarch.sh
===================================================================
RCS file: /cvs/src/src/gdb/gdbarch.sh,v
retrieving revision 1.6
diff -p -r1.6 gdbarch.sh
*** gdbarch.sh 2000/03/30 05:32:23 1.6
--- gdbarch.sh 2000/03/31 22:49:53
*************** compare_new ()
*** 34,41 ****
}
# Format of the input table
! read="class level macro returntype function formal actual attrib default init invalid_p fmt print print_p description"
# dump out/verify the doco
for field in ${read}
--- 34,65 ----
}
+ # DEFAULT is a valid fallback definition of a MACRO when
+ # multi-arch is not enabled.
+ default_is_fallback_p ()
+ {
+ [ "${default}" != "" -a "${invalid_p}" = "0" ]
+ # FIXME: cagney - not until after 5.0
+ false
+ }
+
# Format of the input table
! read="class level macro returntype function formal actual attrib startup default invalid_p fmt print print_p description"
!
! do_read ()
! {
! if eval read $read
! then
! test "${startup}" || startup=0
! test "${fmt}" || fmt="%ld"
! test "${print}" || print="(long) ${macro}"
! #test "${default}" || default=0
! :
! else
! false
! fi
! }
!
# dump out/verify the doco
for field in ${read}
*************** do
*** 44,133 ****
class ) : ;;
! # # -> line disable
! # f -> function
! # hiding a function
! # v -> variable
! # hiding a variable
! # i -> set from info
! # hiding something from the ``struct info'' object
level ) : ;;
! # See GDB_MULTI_ARCH description. Having GDB_MULTI_ARCH >=
! # LEVEL is a predicate on checking that a given method is
! # initialized (using INVALID_P).
macro ) : ;;
! # The name of the MACRO that this method is to be accessed by.
returntype ) : ;;
! # For functions, the return type; for variables, the data type
function ) : ;;
! # For functions, the member function name; for variables, the
! # variable name. Member function names are always prefixed with
! # ``gdbarch_'' for name-space purity.
formal ) : ;;
! # The formal argument list. It is assumed that the formal
! # argument list includes the actual name of each list element.
! # A function with no arguments shall have ``void'' as the formal
! # argument list.
actual ) : ;;
! # The list of actual arguments. The arguments specified shall
! # match the FORMAL list given above. Functions with out
! # arguments leave this blank.
attrib ) : ;;
! # Any GCC attributes that should be attached to the function
! # declaration. At present this field is unused.
! default ) : ;;
! # To help with the GDB startup a default static gdbarch object
! # is created. DEFAULT is the value to insert into the static
! # gdbarch object. If empty ZERO is used.
! init ) : ;;
! # Any initial value to assign to a new gdbarch object after it
! # as been malloc()ed. Zero is used by default.
invalid_p ) : ;;
! # A predicate equation that validates MEMBER. Non-zero is returned
! # if the code creating the new architecture failed to initialize
! # the MEMBER or initialized the member to something invalid.
! # By default, a check that the value is no longer equal to INIT
! # is performed. The equation ``0'' disables the invalid_p check.
fmt ) : ;;
! # printf style format string that can be used to print out the
! # MEMBER. The default is to assume "%ld" is safe. Sometimes
! # "%s" is useful. For functions, this is ignored and the
! # function address is printed.
print ) : ;;
! # An optional equation that converts the MEMBER into a value
! # suitable for that FMT. By default it is assumed that the
! # member's MACRO cast to long is safe.
print_p ) : ;;
! # An optional indicator for any predicte to wrap around the
! # print member code.
! # # -> Wrap print up in ``#ifdef MACRO''
! # exp -> Wrap print up in ``if (${print_p}) ...
description ) : ;;
--- 68,169 ----
class ) : ;;
! # # -> line disable
! # f -> function
! # hiding a function
! # v -> variable
! # hiding a variable
! # i -> set from info
! # hiding something from the ``struct info'' object
level ) : ;;
! # See GDB_MULTI_ARCH description. Having GDB_MULTI_ARCH >=
! # LEVEL is a predicate on checking that a given method is
! # initialized (using INVALID_P).
macro ) : ;;
! # The name of the MACRO that this method is to be accessed by.
returntype ) : ;;
! # For functions, the return type; for variables, the data type
function ) : ;;
! # For functions, the member function name; for variables, the
! # variable name. Member function names are always prefixed with
! # ``gdbarch_'' for name-space purity.
formal ) : ;;
! # The formal argument list. It is assumed that the formal
! # argument list includes the actual name of each list element.
! # A function with no arguments shall have ``void'' as the
! # formal argument list.
actual ) : ;;
! # The list of actual arguments. The arguments specified shall
! # match the FORMAL list given above. Functions with out
! # arguments leave this blank.
attrib ) : ;;
! # Any GCC attributes that should be attached to the function
! # declaration. At present this field is unused.
! startup ) : ;;
! # To help with the GDB startup a static gdbarch object is
! # created. STARTUP is the value to insert into that static
! # gdbarch object.
! # By default ``0'' is used.
! default ) : ;;
+ # Any initial value to assign to a new gdbarch object after it
+ # as been malloc()ed. Zero is used by default.
+
+ # Specify a non-empty DEFAULT and a zero INVALID_P to create a
+ # fallback value or function for when multi-arch is disabled.
+ # Specify a zero DEFAULT function to make that fallback
+ # illegal to call.
+
invalid_p ) : ;;
! # A predicate equation that validates MEMBER. Non-zero is
! # returned if the code creating the new architecture failed to
! # initialize the MEMBER or initialized the member to something
! # invalid. By default, a check that the value is no longer
! # equal to DEFAULT ips performed. The equation ``0'' disables
! # the invalid_p check.
fmt ) : ;;
+
+ # printf style format string that can be used to print out the
+ # MEMBER. Sometimes "%s" is useful. For functions, this is
+ # ignored and the function address is printed.
! # By default ```%ld'' is used.
print ) : ;;
! # An optional equation that casts MEMBER to a value suitable
! # for formatting by FMT.
+ # By default ``(long)'' is used.
+
print_p ) : ;;
+
+ # An optional indicator for any predicte to wrap around the
+ # print member code.
! # # -> Wrap print up in ``#ifdef MACRO''
! # exp -> Wrap print up in ``if (${print_p}) ...
! # ``'' -> No predicate
description ) : ;;
*************** v:2:NUM_REGS:int:num_regs::::0:-1
*** 169,175 ****
v:2:SP_REGNUM:int:sp_regnum::::0:-1
v:2:FP_REGNUM:int:fp_regnum::::0:-1
v:2:PC_REGNUM:int:pc_regnum::::0:-1
! f:2:REGISTER_NAME:char *:register_name:int regnr:regnr::0:0
v:2:REGISTER_SIZE:int:register_size::::0:-1
v:2:REGISTER_BYTES:int:register_bytes::::0:-1
f:2:REGISTER_BYTE:int:register_byte:int reg_nr:reg_nr::0:0
--- 205,211 ----
v:2:SP_REGNUM:int:sp_regnum::::0:-1
v:2:FP_REGNUM:int:fp_regnum::::0:-1
v:2:PC_REGNUM:int:pc_regnum::::0:-1
! f:2:REGISTER_NAME:char *:register_name:int regnr:regnr:::legacy_register_name:0
v:2:REGISTER_SIZE:int:register_size::::0:-1
v:2:REGISTER_BYTES:int:register_bytes::::0:-1
f:2:REGISTER_BYTE:int:register_byte:int reg_nr:reg_nr::0:0
*************** v:1:CALL_DUMMY_BREAKPOINT_OFFSET_P:int:c
*** 188,242 ****
v:2:CALL_DUMMY_LENGTH:int:call_dummy_length::::0:-1::::CALL_DUMMY_LOCATION == BEFORE_TEXT_END || CALL_DUMMY_LOCATION == AFTER_TEXT_END
f:2:PC_IN_CALL_DUMMY:int:pc_in_call_dummy:CORE_ADDR pc, CORE_ADDR sp, CORE_ADDR frame_address:pc, sp, frame_address::0:0
v:1:CALL_DUMMY_P:int:call_dummy_p::::0:-1
! v:2:CALL_DUMMY_WORDS:LONGEST *:call_dummy_words::::0:::0x%08lx
! v:2:SIZEOF_CALL_DUMMY_WORDS:int:sizeof_call_dummy_words::::0:::0x%08lx
v:1:CALL_DUMMY_STACK_ADJUST_P:int:call_dummy_stack_adjust_p::::0:-1::0x%08lx
v:2:CALL_DUMMY_STACK_ADJUST:int:call_dummy_stack_adjust::::0::gdbarch->call_dummy_stack_adjust_p && gdbarch->call_dummy_stack_adjust == 0:0x%08lx::CALL_DUMMY_STACK_ADJUST_P
f:2:FIX_CALL_DUMMY:void:fix_call_dummy:char *dummy, CORE_ADDR pc, CORE_ADDR fun, int nargs, struct value **args, struct type *type, int gcc_p:dummy, pc, fun, nargs, args, type, gcc_p::0:0
#
v:2:BELIEVE_PCC_PROMOTION:int:believe_pcc_promotion::::0:::::#
v:2:BELIEVE_PCC_PROMOTION_TYPE:int:believe_pcc_promotion_type::::0:::::#
! f:2:COERCE_FLOAT_TO_DOUBLE:int:coerce_float_to_double:struct type *formal, struct type *actual:formal, actual:::default_coerce_float_to_double
f:1:GET_SAVED_REGISTER:void:get_saved_register:char *raw_buffer, int *optimized, CORE_ADDR *addrp, struct frame_info *frame, int regnum, enum lval_type *lval:raw_buffer, optimized, addrp, frame, regnum, lval::generic_get_saved_register:0
#
! f:1:REGISTER_CONVERTIBLE:int:register_convertible:int nr:nr::0:0
! f:2:REGISTER_CONVERT_TO_VIRTUAL:void:register_convert_to_virtual:int regnum, struct type *type, char *from, char *to:regnum, type, from, to::0:0
! f:2:REGISTER_CONVERT_TO_RAW:void:register_convert_to_raw:struct type *type, int regnum, char *from, char *to:type, regnum, from, to::0:0
#
f:2:EXTRACT_RETURN_VALUE:void:extract_return_value:struct type *type, char *regbuf, char *valbuf:type, regbuf, valbuf::0:0
f:1:PUSH_ARGUMENTS:CORE_ADDR:push_arguments:int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr:nargs, args, sp, struct_return, struct_addr::0:0
! f:2:PUSH_DUMMY_FRAME:void:push_dummy_frame:void:-::0:0
! f:1:PUSH_RETURN_ADDRESS:CORE_ADDR:push_return_address:CORE_ADDR pc, CORE_ADDR sp:pc, sp::0:0
! f:2:POP_FRAME:void:pop_frame:void:-::0:0
#
# I wish that these would just go away....
! f:2:D10V_MAKE_DADDR:CORE_ADDR:d10v_make_daddr:CORE_ADDR x:x::0:0
! f:2:D10V_MAKE_IADDR:CORE_ADDR:d10v_make_iaddr:CORE_ADDR x:x::0:0
! f:2:D10V_DADDR_P:int:d10v_daddr_p:CORE_ADDR x:x::0:0
! f:2:D10V_IADDR_P:int:d10v_iaddr_p:CORE_ADDR x:x::0:0
! f:2:D10V_CONVERT_DADDR_TO_RAW:CORE_ADDR:d10v_convert_daddr_to_raw:CORE_ADDR x:x::0:0
! f:2:D10V_CONVERT_IADDR_TO_RAW:CORE_ADDR:d10v_convert_iaddr_to_raw:CORE_ADDR x:x::0:0
#
! f:2:STORE_STRUCT_RETURN:void:store_struct_return:CORE_ADDR addr, CORE_ADDR sp:addr, sp::0:0
! f:2:STORE_RETURN_VALUE:void:store_return_value:struct type *type, char *valbuf:type, valbuf::0:0
! f:2:EXTRACT_STRUCT_VALUE_ADDRESS:CORE_ADDR:extract_struct_value_address:char *regbuf:regbuf::0:0
! f:2:USE_STRUCT_CONVENTION:int:use_struct_convention:int gcc_p, struct type *value_type:gcc_p, value_type::0:0
#
f:2:FRAME_INIT_SAVED_REGS:void:frame_init_saved_regs:struct frame_info *frame:frame::0:0
! f:2:INIT_EXTRA_FRAME_INFO:void:init_extra_frame_info:int fromleaf, struct frame_info *frame:fromleaf, frame::0:0
#
f:2:SKIP_PROLOGUE:CORE_ADDR:skip_prologue:CORE_ADDR ip:ip::0:0
f:2:INNER_THAN:int:inner_than:CORE_ADDR lhs, CORE_ADDR rhs:lhs, rhs::0:0
! f:2:BREAKPOINT_FROM_PC:unsigned char *:breakpoint_from_pc:CORE_ADDR *pcptr, int *lenptr:pcptr, lenptr::0:0
f:2:MEMORY_INSERT_BREAKPOINT:int:memory_insert_breakpoint:CORE_ADDR addr, char *contents_cache:addr, contents_cache::0:default_memory_insert_breakpoint:0
f:2:MEMORY_REMOVE_BREAKPOINT:int:memory_remove_breakpoint:CORE_ADDR addr, char *contents_cache:addr, contents_cache::0:default_memory_remove_breakpoint:0
v:2:DECR_PC_AFTER_BREAK:CORE_ADDR:decr_pc_after_break::::0:-1
v:2:FUNCTION_START_OFFSET:CORE_ADDR:function_start_offset::::0:-1
#
! f:2:REMOTE_TRANSLATE_XFER_ADDRESS:void:remote_translate_xfer_address:CORE_ADDR gdb_addr, int gdb_len, CORE_ADDR *rem_addr, int *rem_len:gdb_addr, gdb_len, rem_addr, rem_len::0:0
#
v:2:FRAME_ARGS_SKIP:CORE_ADDR:frame_args_skip::::0:-1
! f:2:FRAMELESS_FUNCTION_INVOCATION:int:frameless_function_invocation:struct frame_info *fi:fi::0:0
f:2:FRAME_CHAIN:CORE_ADDR:frame_chain:struct frame_info *frame:frame::0:0
f:1:FRAME_CHAIN_VALID:int:frame_chain_valid:CORE_ADDR chain, struct frame_info *thisframe:chain, thisframe::0:0
f:2:FRAME_SAVED_PC:CORE_ADDR:frame_saved_pc:struct frame_info *fi:fi::0:0
--- 224,278 ----
v:2:CALL_DUMMY_LENGTH:int:call_dummy_length::::0:-1::::CALL_DUMMY_LOCATION == BEFORE_TEXT_END || CALL_DUMMY_LOCATION == AFTER_TEXT_END
f:2:PC_IN_CALL_DUMMY:int:pc_in_call_dummy:CORE_ADDR pc, CORE_ADDR sp, CORE_ADDR frame_address:pc, sp, frame_address::0:0
v:1:CALL_DUMMY_P:int:call_dummy_p::::0:-1
! v:2:CALL_DUMMY_WORDS:LONGEST *:call_dummy_words::::0:legacy_call_dummy_words:0:0x%08lx
! v:2:SIZEOF_CALL_DUMMY_WORDS:int:sizeof_call_dummy_words::::0:legacy_sizeof_call_dummy_words:0:0x%08lx
v:1:CALL_DUMMY_STACK_ADJUST_P:int:call_dummy_stack_adjust_p::::0:-1::0x%08lx
v:2:CALL_DUMMY_STACK_ADJUST:int:call_dummy_stack_adjust::::0::gdbarch->call_dummy_stack_adjust_p && gdbarch->call_dummy_stack_adjust == 0:0x%08lx::CALL_DUMMY_STACK_ADJUST_P
f:2:FIX_CALL_DUMMY:void:fix_call_dummy:char *dummy, CORE_ADDR pc, CORE_ADDR fun, int nargs, struct value **args, struct type *type, int gcc_p:dummy, pc, fun, nargs, args, type, gcc_p::0:0
#
v:2:BELIEVE_PCC_PROMOTION:int:believe_pcc_promotion::::0:::::#
v:2:BELIEVE_PCC_PROMOTION_TYPE:int:believe_pcc_promotion_type::::0:::::#
! f:2:COERCE_FLOAT_TO_DOUBLE:int:coerce_float_to_double:struct type *formal, struct type *actual:formal, actual:::default_coerce_float_to_double:0
f:1:GET_SAVED_REGISTER:void:get_saved_register:char *raw_buffer, int *optimized, CORE_ADDR *addrp, struct frame_info *frame, int regnum, enum lval_type *lval:raw_buffer, optimized, addrp, frame, regnum, lval::generic_get_saved_register:0
#
! f:1:REGISTER_CONVERTIBLE:int:register_convertible:int nr:nr:::generic_register_convertible_not:0
! f:2:REGISTER_CONVERT_TO_VIRTUAL:void:register_convert_to_virtual:int regnum, struct type *type, char *from, char *to:regnum, type, from, to:::0:0
! f:2:REGISTER_CONVERT_TO_RAW:void:register_convert_to_raw:struct type *type, int regnum, char *from, char *to:type, regnum, from, to:::0:0
#
f:2:EXTRACT_RETURN_VALUE:void:extract_return_value:struct type *type, char *regbuf, char *valbuf:type, regbuf, valbuf::0:0
f:1:PUSH_ARGUMENTS:CORE_ADDR:push_arguments:int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr:nargs, args, sp, struct_return, struct_addr::0:0
! f:2:PUSH_DUMMY_FRAME:void:push_dummy_frame:void:-:::0
! f:1:PUSH_RETURN_ADDRESS:CORE_ADDR:push_return_address:CORE_ADDR pc, CORE_ADDR sp:pc, sp:::0
! f:2:POP_FRAME:void:pop_frame:void:-:::0
#
# I wish that these would just go away....
! f:2:D10V_MAKE_DADDR:CORE_ADDR:d10v_make_daddr:CORE_ADDR x:x:::0:0
! f:2:D10V_MAKE_IADDR:CORE_ADDR:d10v_make_iaddr:CORE_ADDR x:x:::0:0
! f:2:D10V_DADDR_P:int:d10v_daddr_p:CORE_ADDR x:x:::0
! f:2:D10V_IADDR_P:int:d10v_iaddr_p:CORE_ADDR x:x:::0
! f:2:D10V_CONVERT_DADDR_TO_RAW:CORE_ADDR:d10v_convert_daddr_to_raw:CORE_ADDR x:x:::0
! f:2:D10V_CONVERT_IADDR_TO_RAW:CORE_ADDR:d10v_convert_iaddr_to_raw:CORE_ADDR x:x:::0
#
! f:2:STORE_STRUCT_RETURN:void:store_struct_return:CORE_ADDR addr, CORE_ADDR sp:addr, sp:::0
! f:2:STORE_RETURN_VALUE:void:store_return_value:struct type *type, char *valbuf:type, valbuf:::0
! f:2:EXTRACT_STRUCT_VALUE_ADDRESS:CORE_ADDR:extract_struct_value_address:char *regbuf:regbuf:::0
! f:2:USE_STRUCT_CONVENTION:int:use_struct_convention:int gcc_p, struct type *value_type:gcc_p, value_type:::0
#
f:2:FRAME_INIT_SAVED_REGS:void:frame_init_saved_regs:struct frame_info *frame:frame::0:0
! f:2:INIT_EXTRA_FRAME_INFO:void:init_extra_frame_info:int fromleaf, struct frame_info *frame:fromleaf, frame:::0
#
f:2:SKIP_PROLOGUE:CORE_ADDR:skip_prologue:CORE_ADDR ip:ip::0:0
f:2:INNER_THAN:int:inner_than:CORE_ADDR lhs, CORE_ADDR rhs:lhs, rhs::0:0
! f:2:BREAKPOINT_FROM_PC:unsigned char *:breakpoint_from_pc:CORE_ADDR *pcptr, int *lenptr:pcptr, lenptr:::legacy_breakpoint_from_pc:0
f:2:MEMORY_INSERT_BREAKPOINT:int:memory_insert_breakpoint:CORE_ADDR addr, char *contents_cache:addr, contents_cache::0:default_memory_insert_breakpoint:0
f:2:MEMORY_REMOVE_BREAKPOINT:int:memory_remove_breakpoint:CORE_ADDR addr, char *contents_cache:addr, contents_cache::0:default_memory_remove_breakpoint:0
v:2:DECR_PC_AFTER_BREAK:CORE_ADDR:decr_pc_after_break::::0:-1
v:2:FUNCTION_START_OFFSET:CORE_ADDR:function_start_offset::::0:-1
#
! f:2:REMOTE_TRANSLATE_XFER_ADDRESS:void:remote_translate_xfer_address:CORE_ADDR gdb_addr, int gdb_len, CORE_ADDR *rem_addr, int *rem_len:gdb_addr, gdb_len, rem_addr, rem_len:::generic_remote_translate_xfer_address:0
#
v:2:FRAME_ARGS_SKIP:CORE_ADDR:frame_args_skip::::0:-1
! f:2:FRAMELESS_FUNCTION_INVOCATION:int:frameless_function_invocation:struct frame_info *fi:fi:::generic_frameless_function_invocation_not:0
f:2:FRAME_CHAIN:CORE_ADDR:frame_chain:struct frame_info *frame:frame::0:0
f:1:FRAME_CHAIN_VALID:int:frame_chain_valid:CORE_ADDR chain, struct frame_info *thisframe:chain, thisframe::0:0
f:2:FRAME_SAVED_PC:CORE_ADDR:frame_saved_pc:struct frame_info *fi:fi::0:0
*************** EOF
*** 254,267 ****
if true
then
exec > new-gdbarch
! function_list | while eval read $read
do
cat <<EOF
${class} ${macro}(${actual})
${returntype} ${function} ($formal)${attrib}
level=${level}
default=${default}
- init=${init}
invalid_p=${invalid_p}
fmt=${fmt}
print=${print}
--- 290,303 ----
if true
then
exec > new-gdbarch
! function_list | while do_read # eval read $read
do
cat <<EOF
${class} ${macro}(${actual})
${returntype} ${function} ($formal)${attrib}
level=${level}
+ startup=${startup}
default=${default}
invalid_p=${invalid_p}
fmt=${fmt}
print=${print}
*************** EOF
*** 369,375 ****
echo ""
echo ""
echo "/* The following are pre-initialized by GDBARCH. */"
! function_list | while eval read $read
do
case "${class}" in
"i" )
--- 405,411 ----
echo ""
echo ""
echo "/* The following are pre-initialized by GDBARCH. */"
! function_list | while do_read # eval read $read
do
case "${class}" in
"i" )
*************** done
*** 389,395 ****
echo ""
echo ""
echo "/* The following are initialized by the target dependant code. */"
! function_list | while eval read $read
do
case "${class}" in
"v" )
--- 425,431 ----
echo ""
echo ""
echo "/* The following are initialized by the target dependant code. */"
! function_list | while do_read # eval read $read
do
case "${class}" in
"v" )
*************** do
*** 412,418 ****
echo "extern ${returntype} gdbarch_${function} (struct gdbarch *gdbarch, ${formal});"
fi
echo "extern void set_gdbarch_${function} (struct gdbarch *gdbarch, gdbarch_${function}_ftype *${function});"
! echo "#if GDB_MULTI_ARCH"
echo "#if (GDB_MULTI_ARCH > 1) || !defined (${macro})"
if [ "${actual}" = "" ]
then
--- 448,457 ----
echo "extern ${returntype} gdbarch_${function} (struct gdbarch *gdbarch, ${formal});"
fi
echo "extern void set_gdbarch_${function} (struct gdbarch *gdbarch, gdbarch_${function}_ftype *${function});"
! if ! default_is_fallback_p
! then
! echo "#if GDB_MULTI_ARCH"
! fi
echo "#if (GDB_MULTI_ARCH > 1) || !defined (${macro})"
if [ "${actual}" = "" ]
then
*************** do
*** 423,430 ****
else
echo "#define ${macro}(${actual}) (gdbarch_${function} (current_gdbarch, ${actual}))"
fi
- echo "#endif"
echo "#endif"
;;
esac
done
--- 462,472 ----
else
echo "#define ${macro}(${actual}) (gdbarch_${function} (current_gdbarch, ${actual}))"
fi
echo "#endif"
+ if ! default_is_fallback_p
+ then
+ echo "#endif"
+ fi
;;
esac
done
*************** copyright
*** 770,775 ****
--- 812,818 ----
cat <<EOF
#include "defs.h"
+ #include "gdbarch-utils.h"
#if GDB_MULTI_ARCH
#include "gdbcmd.h"
*************** echo ""
*** 825,831 ****
echo "struct gdbarch"
echo "{"
echo " /* basic architectural information */"
! function_list | while eval read $read
do
case "${class}" in
"i" ) echo " ${returntype} ${function};" ;;
--- 868,874 ----
echo "struct gdbarch"
echo "{"
echo " /* basic architectural information */"
! function_list | while do_read # eval read $read
do
case "${class}" in
"i" ) echo " ${returntype} ${function};" ;;
*************** cat <<EOF
*** 861,867 ****
gdbarch_dump(): Add a fprintf_unfiltered call to so that the new
field is dumped out
! \`\`default_gdbarch()'': Append an initial value to the static
variable (base values on the host's c-type system).
get_gdbarch(): Implement the set/get functions (probably using
--- 904,910 ----
gdbarch_dump(): Add a fprintf_unfiltered call to so that the new
field is dumped out
! \`\`startup_gdbarch()'': Append an initial value to the static
variable (base values on the host's c-type system).
get_gdbarch(): Implement the set/get functions (probably using
*************** cat <<EOF
*** 870,876 ****
*/
EOF
! function_list | while eval read $read
do
case "${class}" in
"v" ) echo " ${returntype} ${function};" ;;
--- 913,919 ----
*/
EOF
! function_list | while do_read # eval read $read
do
case "${class}" in
"v" ) echo " ${returntype} ${function};" ;;
*************** EOF
*** 889,905 ****
echo ""
echo "extern const struct bfd_arch_info bfd_default_arch_struct;"
echo ""
! echo "struct gdbarch default_gdbarch = {"
echo " /* basic architecture information */"
! function_list | while eval read $read
do
case "${class}" in
"i" )
! if [ "${default}" = "" ]; then
! echo " 0,"
! else
! echo " ${default},"
! fi
;;
esac
done
--- 932,944 ----
echo ""
echo "extern const struct bfd_arch_info bfd_default_arch_struct;"
echo ""
! echo "struct gdbarch startup_gdbarch = {"
echo " /* basic architecture information */"
! function_list | while do_read # eval read $read
do
case "${class}" in
"i" )
! echo " ${startup},"
;;
esac
done
*************** cat <<EOF
*** 910,931 ****
0, NULL, NULL,
/* Multi-arch values */
EOF
! function_list | while eval read $read
do
case "${class}" in
"f" | "v" )
! if [ "${default}" = "" ]; then
! echo " 0,"
! else
! echo " ${default},"
! fi
;;
esac
done
cat <<EOF
! /* default_gdbarch() */
};
! struct gdbarch *current_gdbarch = &default_gdbarch;
EOF
# Create a new gdbarch struct
--- 949,966 ----
0, NULL, NULL,
/* Multi-arch values */
EOF
! function_list | while do_read # eval read $read
do
case "${class}" in
"f" | "v" )
! echo " ${startup},"
;;
esac
done
cat <<EOF
! /* startup_gdbarch() */
};
! struct gdbarch *current_gdbarch = &startup_gdbarch;
EOF
# Create a new gdbarch struct
*************** gdbarch_alloc (const struct gdbarch_info
*** 947,953 ****
gdbarch->tdep = tdep;
EOF
echo ""
! function_list | while eval read $read
do
case "${class}" in
"i" ) echo " gdbarch->${function} = info->${function};"
--- 982,988 ----
gdbarch->tdep = tdep;
EOF
echo ""
! function_list | while do_read # eval read $read
do
case "${class}" in
"i" ) echo " gdbarch->${function} = info->${function};"
*************** do
*** 955,967 ****
done
echo ""
echo " /* Force the explicit initialization of these. */"
! function_list | while eval read $read
do
case "${class}" in
"f" | "v" )
! if [ "${init}" != "" -a "${init}" != "0" ]
then
! echo " gdbarch->${function} = ${init};"
fi
;;
esac
--- 990,1002 ----
done
echo ""
echo " /* Force the explicit initialization of these. */"
! function_list | while do_read # eval read $read
do
case "${class}" in
"f" | "v" )
! if [ "${default}" != "" -a "${default}" != "0" ]
then
! echo " gdbarch->${function} = ${default};"
fi
;;
esac
*************** verify_gdbarch (struct gdbarch *gdbarch)
*** 1009,1028 ****
internal_error ("verify_gdbarch: bfd_arch_info unset");
/* Check those that need to be defined for the given multi-arch level. */
EOF
! function_list | while eval read $read
do
case "${class}" in
"f" | "v" )
! if [ "${invalid_p}" ]
then
! echo " if ((GDB_MULTI_ARCH >= ${level})"
! echo " && (${invalid_p}))"
! echo " internal_error (\"gdbarch: verify_gdbarch: ${function} invalid\");"
! elif [ "${init}" ]
then
! echo " if ((GDB_MULTI_ARCH >= ${level})"
! echo " && (gdbarch->${function} == ${init}))"
! echo " internal_error (\"gdbarch: verify_gdbarch: ${function} invalid\");"
fi
;;
esac
--- 1044,1066 ----
internal_error ("verify_gdbarch: bfd_arch_info unset");
/* Check those that need to be defined for the given multi-arch level. */
EOF
! function_list | while do_read # eval read $read
do
case "${class}" in
"f" | "v" )
! if [ "${invalid_p}" = "0" ]
! then
! echo " /* Skip verify of ${function}, invalid_p == 0 */"
! elif [ "${invalid_p}" ]
then
! echo " if ((GDB_MULTI_ARCH >= ${level})"
! echo " && (${invalid_p}))"
! echo " internal_error (\"gdbarch: verify_gdbarch: ${function} invalid\");"
! elif [ "${default}" ]
then
! echo " if ((GDB_MULTI_ARCH >= ${level})"
! echo " && (gdbarch->${function} == ${default}))"
! echo " internal_error (\"gdbarch: verify_gdbarch: ${function} invalid\");"
fi
;;
esac
*************** void
*** 1041,1047 ****
gdbarch_dump (void)
{
EOF
! function_list | while eval read $read
do
case "${class}" in
"f" )
--- 1079,1085 ----
gdbarch_dump (void)
{
EOF
! function_list | while do_read # eval read $read
do
case "${class}" in
"f" )
*************** do
*** 1051,1058 ****
echo " /*${macro} ()*/);"
;;
* )
- test "${fmt}" || fmt="%ld"
- test "${print}" || print="(long) ${macro}"
if [ "${print_p}" = "#" ]
then
echo "#ifdef ${macro}"
--- 1089,1094 ----
*************** gdbarch_tdep (struct gdbarch *gdbarch)
*** 1089,1095 ****
}
EOF
echo ""
! function_list | while eval read $read
do
case "${class}" in
"f" )
--- 1125,1131 ----
}
EOF
echo ""
! function_list | while do_read # eval read $read
do
case "${class}" in
"f" )
*************** do
*** 1102,1107 ****
--- 1138,1156 ----
echo "gdbarch_${function} (struct gdbarch *gdbarch, ${formal})"
fi
echo "{"
+ if default_is_fallback_p && [ "${default}" != "0" ]
+ then
+ echo " if (GDB_MULTI_ARCH == 0)"
+ if [ "${returntype}" = "void" ]
+ then
+ echo " {"
+ echo " ${default} (${actual});"
+ echo " return;"
+ echo " }"
+ else
+ echo " return ${default} (${actual});"
+ fi
+ fi
echo " if (gdbarch->${function} == 0)"
echo " internal_error (\"gdbarch: gdbarch_${function} invalid\");"
echo " if (gdbarch_debug >= 2)"
*************** do
*** 1127,1139 ****
echo "${returntype}"
echo "gdbarch_${function} (struct gdbarch *gdbarch)"
echo "{"
! if [ "${invalid_p}" ]
then
echo " if (${invalid_p})"
echo " internal_error (\"gdbarch: gdbarch_${function} invalid\");"
! elif [ "${init}" ]
then
! echo " if (gdbarch->${function} == ${init})"
echo " internal_error (\"gdbarch: gdbarch_${function} invalid\");"
fi
echo " if (gdbarch_debug >= 2)"
--- 1176,1191 ----
echo "${returntype}"
echo "gdbarch_${function} (struct gdbarch *gdbarch)"
echo "{"
! if [ "${invalid_p}" = "0" ]
! then
! echo " /* Skip verify of ${function}, invalid_p == 0 */"
! elif [ "${invalid_p}" ]
then
echo " if (${invalid_p})"
echo " internal_error (\"gdbarch: gdbarch_${function} invalid\");"
! elif [ "${default}" ]
then
! echo " if (gdbarch->${function} == ${default})"
echo " internal_error (\"gdbarch: gdbarch_${function} invalid\");"
fi
echo " if (gdbarch_debug >= 2)"
From eliz@delorie.com Fri Mar 31 15:17:00 2000
From: Eli Zaretskii <eliz@delorie.com>
To: shebs@shebs.cnchost.com
Cc: gdb-patches@sourceware.cygnus.com, 3diff@gnu.org
Subject: Re: GDB manual changes
Date: Fri, 31 Mar 2000 15:17:00 -0000
Message-id: <200003312310.SAA07152@indy.delorie.com>
References: <38E0E672.478B088F@shebs.cnchost.com>
X-SW-Source: 2000-03/msg00704.html
Content-length: 1283
> ! @c below produces an acceptable overful hbox. --mew 13aug1993
> @cindex frameless execution
> Some compilers provide a way to compile functions so that they operate
> ! without stack frames. (For example, the @code{@value{GCC}} option
> ! @samp{-fomit-frame-pointer} generates functions without a frame.)
> This is occasionally done with heavily used library functions to save
> the frame setup time. @value{GDBN} has limited facilities for dealing
> with these function invocations. If the innermost function invocation
> --- 3661,3675 ----
> they are assigned by @value{GDBN} to give you a way of designating stack
> frames in @value{GDBN} commands.
>
> ! @c The -fomit-frame-pointer below perennially causes hbox overflow
> ! @c underflow problems.
> @cindex frameless execution
> Some compilers provide a way to compile functions so that they operate
> ! without stack frames. (For example, the @value{GCC} option
> ! @example
> ! @samp{-fomit-frame-pointer}
> ! @end example
> ! generates functions without a frame.)
Ouch! Isn't there a better way of avoiding overflow? I usually put
in some slack words to do that. Do you want me to try to find a
better solution?
Anyway, you probably want @noindent after the @example, if this is
left alone.
From eliz@delorie.com Fri Mar 31 15:25:00 2000
From: Eli Zaretskii <eliz@delorie.com>
To: jimb@cygnus.com
Cc: hjl@lucon.org, gdb@sourceware.cygnus.com, gdb-patches@sourceware.cygnus.com
Subject: Re: Problems with hardware watchpoint on ia32.
Date: Fri, 31 Mar 2000 15:25:00 -0000
Message-id: <200003312323.SAA07185@indy.delorie.com>
References: <20000307132401.A20282@valinux.com> <200003081008.FAA16481@indy.delorie.com> <20000308084304.A3150@lucon.org> <200003091210.HAA19857@indy.delorie.com> <npya7c6zn7.fsf@zwingli.cygnus.com> <200003221806.NAA14225@indy.delorie.com> <npbt4040t3.fsf@zwingli.cygnus.com>
X-SW-Source: 2000-03/msg00705.html
Content-length: 905
> > I seem to be unable to reproduce the problem, at least in a C program:
> > whenever I say "watch foo == bar" (where foo and bar are structs), GDB
> > curses thusly:
> >
> > Structure has no component named operator==.
> >
> > Am I missing something?
>
> As Michael points out, structure comparison is broken. But that
> doesn't change my original point --- that it's perfectly legitimate to
> have `struct value' objects representing structures, which should be
> watched in their entirety.
The current sources do support watching an entire struct, the patches
I sent (and Michael commited) have special provisions for this case.
I asked for an example because I want to look into the problem you
were describing and fix it. Do you have any other case where this
problem could happen?
If every instance of such a situation is equally broken, then the
users won't miss this functionality ;-).
From eliz@delorie.com Fri Mar 31 15:34:00 2000
From: Eli Zaretskii <eliz@delorie.com>
To: ac131313@cygnus.com
Cc: gdb-patches@sourceware.cygnus.com
Subject: Re: [MAINT/PATCH] ChangeLog et.al.: Revert whitespace changes
Date: Fri, 31 Mar 2000 15:34:00 -0000
Message-id: <200003312332.SAA07205@indy.delorie.com>
References: <38DEF05E.9D2E79AC@cygnus.com>
X-SW-Source: 2000-03/msg00706.html
Content-length: 1418
> I've just committed the attatched. It reverts a string of arbitrary
> whitespace changes made to various files including ChangeLogs.
>
> For ChangeLogs, they should be prepend-only.
Sorry, I don't understand some of these changes, like this one:
> *************** Fri Mar 17 11:06:59 2000 Philippe De Mu
> *** 429,435 ****
> * config/i386/tm-linux.h (I386_LINUX_SIGTRAMP): No need to define
> this any more, since we're not enabling OS-specific code in a
> OS-independent file.
> !
> 2000-03-16 Eli Zaretskii <eliz@is.elta.co.il>
>
> * Makefile.in (go32-nat.o): Add prerequisites.
> --- 433,439 ----
> * config/i386/tm-linux.h (I386_LINUX_SIGTRAMP): No need to define
> this any more, since we're not enabling OS-specific code in a
> OS-independent file.
> !
> 2000-03-16 Eli Zaretskii <eliz@is.elta.co.il>
>
> * Makefile.in (go32-nat.o): Add prerequisites.
The only change here is that in the new version, there's extra
whitespace in an otherwise empty line. It's quite possible that some
editor (such as Emacs) removed the whitespace when somebody pressed
M-q to reformat the paragraph.
While I understand the importance of avoiding gratuitous whitespace
changes, introducing extra blanks in ChangeLogs seems like the wrong
way to do it, especially since they are subject to disappearence
without notice. Those blanks shouldn't have been there in the first
place.
From shebs@apple.com Fri Mar 31 15:42:00 2000
From: Stan Shebs <shebs@apple.com>
To: Eli Zaretskii <eliz@is.elta.co.il>
Cc: shebs@shebs.cnchost.com, gdb-patches@sourceware.cygnus.com, 3diff@gnu.org
Subject: Re: GDB manual changes
Date: Fri, 31 Mar 2000 15:42:00 -0000
Message-id: <38E53800.61A4AFD2@apple.com>
References: <38E0E672.478B088F@shebs.cnchost.com> <200003312310.SAA07152@indy.delorie.com>
X-SW-Source: 2000-03/msg00707.html
Content-length: 1578
Eli Zaretskii wrote:
>
> > ! @c below produces an acceptable overful hbox. --mew 13aug1993
> > @cindex frameless execution
> > Some compilers provide a way to compile functions so that they operate
> > ! without stack frames. (For example, the @code{@value{GCC}} option
> > ! @samp{-fomit-frame-pointer} generates functions without a frame.)
> > This is occasionally done with heavily used library functions to save
> > the frame setup time. @value{GDBN} has limited facilities for dealing
> > with these function invocations. If the innermost function invocation
> > --- 3661,3675 ----
> > they are assigned by @value{GDBN} to give you a way of designating stack
> > frames in @value{GDBN} commands.
> >
> > ! @c The -fomit-frame-pointer below perennially causes hbox overflow
> > ! @c underflow problems.
> > @cindex frameless execution
> > Some compilers provide a way to compile functions so that they operate
> > ! without stack frames. (For example, the @value{GCC} option
> > ! @example
> > ! @samp{-fomit-frame-pointer}
> > ! @end example
> > ! generates functions without a frame.)
>
> Ouch! Isn't there a better way of avoiding overflow? I usually put
> in some slack words to do that. Do you want me to try to find a
> better solution?
Sure, if you can - I tinkered a while with no luck. The trick is to
make it work both normally and with @smallbook. Doing it as an example
or display guarantees it will work permanently...
> Anyway, you probably want @noindent after the @example, if this is
> left alone.
Oh yeah, good catch!
Stan
From msnyder@cygnus.com Fri Mar 31 17:00:00 2000
From: Michael Snyder <msnyder@cygnus.com>
To: gdb-patches@sourceware.cygnus.com
Subject: Re: [RFA] Demangled minsym hash table broken
Date: Fri, 31 Mar 2000 17:00:00 -0000
Message-id: <38E54791.26CF@cygnus.com>
References: <pusd46y7.fsf@dan.resnet.rochester.edu> <20000329195755.A4249@cygnus.com> <k8il44gk.fsf@dan.resnet.rochester.edu>
X-SW-Source: 2000-03/msg00708.html
Content-length: 946
Daniel Berlin+list.gdb-patches wrote:
>
> Chris Faylor <cgf@cygnus.com> writes:
>
> >
> > Peter Schauer submitted a patch a while ago when he discovered this.
> >
> > It's here: http://sourceware.cygnus.com/ml/gdb-patches/2000-q1/msg00869.html
> >
> > I don't know if your patch is similar but we should probably go with the
> > simplest solution...
> >
>
> I'll work up some testcases and commit his patch, along with some more
> C++ support fixes i've been working on (Should help a lot with the
> people still using STABS).
Daniel, is this the result?
* minsyms.c (add_minsym_to_demangled_hash_table): New function.
(install_minimal_symbols): Fix demangled symbol problems caused
by
using add_minsym_to_hash_table for the demangled names, which is
Just a small nit: this is a static function in minsyms.c, yet
it's declared extern in symtab.h. Gives a new -Wall warning.
Michael
From velco@fadata.bg Sat Apr 01 03:16:00 2000
From: Momchil Velikov <velco@fadata.bg>
To: GDB Patch List <gdb-patches@sourceware.cygnus.com>
Subject: Revised UDP support (was: Re: [Fwd: [patch] UDP transport support])
Date: Sat, 01 Apr 2000 03:16:00 -0000
Message-id: <38E5DB30.908CAD9D@fadata.bg>
X-SW-Source: 2000-04/msg00000.html
Content-length: 26449
Fernando Nasser <fnasser@cygnus.com>
> Please make sure tcp is assumed by default so the current behavior is not changed.
Done. Here the new patch.
Regards,
-velco
PS. The funny thing is that initially I forgot to remove the old
code in serial.c noticed it just before sending the patch
and "corrected" it. Maybe I should't have looked that close :-)
Index: Makefile.in
===================================================================
RCS file: /cvs/src/src/gdb/Makefile.in,v
retrieving revision 1.17
diff -c -3 -p -r1.17 Makefile.in
*** Makefile.in 2000/03/28 21:19:04 1.17
--- Makefile.in 2000/03/31 19:05:32
*************** ALLDEPFILES = 29k-share/udi/udip2soc.c 2
*** 1086,1092 ****
remote-st.c remote-utils.c dcache.c \
remote-udi.c remote-vx.c remote-vx29k.c \
rs6000-nat.c rs6000-tdep.c \
! ser-go32.c ser-pipe.c ser-ocd.c ser-tcp.c \
sh-tdep.c solib.c sparc-nat.c \
sparc-tdep.c sparcl-tdep.c sun3-nat.c sun386-nat.c \
symm-tdep.c symm-nat.c \
--- 1086,1092 ----
remote-st.c remote-utils.c dcache.c \
remote-udi.c remote-vx.c remote-vx29k.c \
rs6000-nat.c rs6000-tdep.c \
! ser-go32.c ser-pipe.c ser-ocd.c ser-tcp.c ser-udp.c \
sh-tdep.c solib.c sparc-nat.c \
sparc-tdep.c sparcl-tdep.c sun3-nat.c sun386-nat.c \
symm-tdep.c symm-nat.c \
*************** ser-ocd.o: ser-ocd.c $(defs_h) serial.h
*** 1760,1765 ****
--- 1760,1767 ----
ser-pipe.o: ser-pipe.c $(defs_h) serial.h signals.h gdb_string.h ser-unix.h
ser-tcp.o: ser-tcp.c $(defs_h) serial.h signals.h gdb_string.h ser-unix.h
+
+ ser-udp.o: ser-udp.c $(defs_h) serial.h signals.h gdb_string.h ser-unix.h
ser-unix.o: ser-unix.c $(defs_h) serial.h ser-unix.h
Index: ser-tcp.c
===================================================================
RCS file: /cvs/src/src/gdb/ser-tcp.c,v
retrieving revision 1.1.1.9
diff -c -3 -p -r1.1.1.9 ser-tcp.c
*** ser-tcp.c 1999/10/05 23:08:47 1.1.1.9
--- ser-tcp.c 2000/03/31 19:05:35
*************** tcp_open (serial_t scb, const char *name
*** 57,63 ****
port_str = strchr (name, ':');
if (!port_str)
! error ("tcp_open: No colon in host name!"); /* Shouldn't ever happen */
tmp = min (port_str - name, (int) sizeof hostname - 1);
strncpy (hostname, name, tmp); /* Don't want colon */
--- 57,63 ----
port_str = strchr (name, ':');
if (!port_str)
! error ("tcp_open: No colon in host name!");
tmp = min (port_str - name, (int) sizeof hostname - 1);
strncpy (hostname, name, tmp); /* Don't want colon */
Index: serial.c
===================================================================
RCS file: /cvs/src/src/gdb/serial.c,v
retrieving revision 1.2
diff -c -3 -p -r1.2 serial.c
*** serial.c 2000/03/28 02:25:14 1.2
--- serial.c 2000/03/31 19:05:38
*************** serial_open (const char *name)
*** 185,190 ****
--- 185,200 ----
ops = serial_interface_lookup ("ocd");
else if (strcmp (name, "pc") == 0)
ops = serial_interface_lookup ("pc");
+ else if (strncmp (name, "udp:", 4) == 0)
+ {
+ ops = serial_interface_lookup ("udp");
+ open_name = name + 4; /* discard ``udp:'' */
+ }
+ else if (strncmp (name, "tcp:", 4) == 0)
+ {
+ ops = serial_interface_lookup ("tcp");
+ open_name = name + 4; /* discard ``tcp:'' */
+ }
else if (strchr (name, ':'))
ops = serial_interface_lookup ("tcp");
else if (strncmp (name, "lpt", 3) == 0)
Index: config/alpha/alpha-linux.mh
===================================================================
RCS file: /cvs/src/src/gdb/config/alpha/alpha-linux.mh,v
retrieving revision 1.2
diff -c -3 -p -r1.2 alpha-linux.mh
*** alpha-linux.mh 2000/03/03 02:18:26 1.2
--- alpha-linux.mh 2000/03/31 19:05:39
***************
*** 1,5 ****
# Host: Little-endian Alpha running Linux
! XDEPFILES= ser-tcp.o
XM_FILE= xm-alphalinux.h
NAT_FILE= nm-linux.h
NATDEPFILES= infptrace.o inftarg.o corelow.o alpha-nat.o \
--- 1,5 ----
# Host: Little-endian Alpha running Linux
! XDEPFILES= ser-tcp.o ser-udp.o
XM_FILE= xm-alphalinux.h
NAT_FILE= nm-linux.h
NATDEPFILES= infptrace.o inftarg.o corelow.o alpha-nat.o \
Index: config/arm/linux.mh
===================================================================
RCS file: /cvs/src/src/gdb/config/arm/linux.mh,v
retrieving revision 1.2
diff -c -3 -p -r1.2 linux.mh
*** linux.mh 2000/02/28 20:28:10 1.2
--- linux.mh 2000/03/31 19:05:39
***************
*** 1,7 ****
# Host: ARM based machine running GNU/Linux
XM_FILE= xm-linux.h
! XDEPFILES= ser-tcp.o
NAT_FILE= nm-linux.h
NATDEPFILES= infptrace.o solib.o inftarg.o fork-child.o corelow.o \
--- 1,7 ----
# Host: ARM based machine running GNU/Linux
XM_FILE= xm-linux.h
! XDEPFILES= ser-tcp.o ser-udp.o
NAT_FILE= nm-linux.h
NATDEPFILES= infptrace.o solib.o inftarg.o fork-child.o corelow.o \
Index: config/i386/cygwin.mh
===================================================================
RCS file: /cvs/src/src/gdb/config/i386/cygwin.mh,v
retrieving revision 1.1.1.1
diff -c -3 -p -r1.1.1.1 cygwin.mh
*** cygwin.mh 1999/04/16 01:34:17 1.1.1.1
--- cygwin.mh 2000/03/31 19:05:39
***************
*** 1,6 ****
MH_CFLAGS=
XM_FILE=xm-cygwin.h
! XDEPFILES=ser-tcp.o
NATDEPFILES= win32-nat.o
NAT_FILE=../nm-empty.h
XM_CLIBS=
--- 1,6 ----
MH_CFLAGS=
XM_FILE=xm-cygwin.h
! XDEPFILES=ser-tcp.o ser-udp.o
NATDEPFILES= win32-nat.o
NAT_FILE=../nm-empty.h
XM_CLIBS=
Index: config/i386/fbsd.mh
===================================================================
RCS file: /cvs/src/src/gdb/config/i386/fbsd.mh,v
retrieving revision 1.1.1.1
diff -c -3 -p -r1.1.1.1 fbsd.mh
*** fbsd.mh 1999/04/16 01:34:17 1.1.1.1
--- fbsd.mh 2000/03/31 19:05:39
***************
*** 1,5 ****
# Host: Intel 386 running FreeBSD
! XDEPFILES= ser-tcp.o
NATDEPFILES= fork-child.o infptrace.o inftarg.o corelow.o core-aout.o i386b-nat.o
XM_FILE= xm-i386bsd.h
NAT_FILE= nm-fbsd.h
--- 1,5 ----
# Host: Intel 386 running FreeBSD
! XDEPFILES= ser-tcp.o ser-udp.o
NATDEPFILES= fork-child.o infptrace.o inftarg.o corelow.o core-aout.o i386b-nat.o
XM_FILE= xm-i386bsd.h
NAT_FILE= nm-fbsd.h
Index: config/i386/i386dgux.mh
===================================================================
RCS file: /cvs/src/src/gdb/config/i386/i386dgux.mh,v
retrieving revision 1.1.1.3
diff -c -3 -p -r1.1.1.3 i386dgux.mh
*** i386dgux.mh 2000/02/01 03:19:14 1.1.1.3
--- i386dgux.mh 2000/03/31 19:05:40
***************
*** 1,7 ****
# Host: Intel 386 running DGUX, cloned from SVR4
XM_FILE= xm-i386v4.h
! XDEPFILES= ser-tcp.o
# for network communication
XM_CLIBS= -lsocket -lnsl
--- 1,7 ----
# Host: Intel 386 running DGUX, cloned from SVR4
XM_FILE= xm-i386v4.h
! XDEPFILES= ser-tcp.o ser-udp.o
# for network communication
XM_CLIBS= -lsocket -lnsl
Index: config/i386/i386lynx.mh
===================================================================
RCS file: /cvs/src/src/gdb/config/i386/i386lynx.mh,v
retrieving revision 1.1.1.1
diff -c -3 -p -r1.1.1.1 i386lynx.mh
*** i386lynx.mh 1999/04/16 01:34:18 1.1.1.1
--- i386lynx.mh 2000/03/31 19:05:40
***************
*** 2,8 ****
XM_FILE= xm-i386lynx.h
XM_CLIBS= -lbsd
! XDEPFILES= ser-tcp.o
NAT_FILE= nm-i386lynx.h
NATDEPFILES= fork-child.o infptrace.o inftarg.o corelow.o lynx-nat.o
--- 2,8 ----
XM_FILE= xm-i386lynx.h
XM_CLIBS= -lbsd
! XDEPFILES= ser-tcp.o ser-udp.o
NAT_FILE= nm-i386lynx.h
NATDEPFILES= fork-child.o infptrace.o inftarg.o corelow.o lynx-nat.o
Index: config/i386/i386sco5.mh
===================================================================
RCS file: /cvs/src/src/gdb/config/i386/i386sco5.mh,v
retrieving revision 1.1.1.1
diff -c -3 -p -r1.1.1.1 i386sco5.mh
*** i386sco5.mh 1999/04/16 01:34:19 1.1.1.1
--- i386sco5.mh 2000/03/31 19:05:40
*************** XM_FILE= xm-i386sco.h
*** 8,14 ****
# runtime, but all come with the development system, so we always
# have socket(), gethostbyname(), and friends.
#
! XDEPFILES= ser-tcp.o
XM_CLIBS= -lPW -lsocket
NAT_FILE= nm-i386sco5.h
--- 8,14 ----
# runtime, but all come with the development system, so we always
# have socket(), gethostbyname(), and friends.
#
! XDEPFILES= ser-tcp.o ser-udp.o
XM_CLIBS= -lPW -lsocket
NAT_FILE= nm-i386sco5.h
Index: config/i386/linux.mh
===================================================================
RCS file: /cvs/src/src/gdb/config/i386/linux.mh,v
retrieving revision 1.1.1.4
diff -c -3 -p -r1.1.1.4 linux.mh
*** linux.mh 1999/12/22 21:45:13 1.1.1.4
--- linux.mh 2000/03/31 19:05:40
***************
*** 1,7 ****
# Host: Intel 386 running GNU/Linux
XM_FILE= xm-linux.h
! XDEPFILES= ser-tcp.o
NAT_FILE= nm-linux.h
NATDEPFILES= infptrace.o solib.o inftarg.o fork-child.o corelow.o \
--- 1,7 ----
# Host: Intel 386 running GNU/Linux
XM_FILE= xm-linux.h
! XDEPFILES= ser-tcp.o ser-udp.o
NAT_FILE= nm-linux.h
NATDEPFILES= infptrace.o solib.o inftarg.o fork-child.o corelow.o \
Index: config/i386/nbsd.mh
===================================================================
RCS file: /cvs/src/src/gdb/config/i386/nbsd.mh,v
retrieving revision 1.2
diff -c -3 -p -r1.2 nbsd.mh
*** nbsd.mh 2000/03/22 01:36:31 1.2
--- nbsd.mh 2000/03/31 19:05:40
***************
*** 1,5 ****
# Host: Intel 386 running NetBSD
! XDEPFILES= ser-tcp.o
NATDEPFILES= fork-child.o infptrace.o inftarg.o corelow.o i386nbsd-nat.o
XM_FILE= xm-nbsd.h
NAT_FILE= nm-nbsd.h
--- 1,5 ----
# Host: Intel 386 running NetBSD
! XDEPFILES= ser-tcp.o ser-udp.o
NATDEPFILES= fork-child.o infptrace.o inftarg.o corelow.o i386nbsd-nat.o
XM_FILE= xm-nbsd.h
NAT_FILE= nm-nbsd.h
Index: config/ia64/linux.mh
===================================================================
RCS file: /cvs/src/src/gdb/config/ia64/linux.mh,v
retrieving revision 1.1
diff -c -3 -p -r1.1 linux.mh
*** linux.mh 2000/03/21 00:11:10 1.1
--- linux.mh 2000/03/31 19:05:41
***************
*** 1,7 ****
# Host: Intel IA-64 running GNU/Linux
XM_FILE= xm-linux.h
! XDEPFILES= ser-tcp.o
NAT_FILE= nm-linux.h
NATDEPFILES= infptrace.o solib.o inftarg.o fork-child.o corelow.o \
--- 1,7 ----
# Host: Intel IA-64 running GNU/Linux
XM_FILE= xm-linux.h
! XDEPFILES= ser-tcp.o ser-udp.o
NAT_FILE= nm-linux.h
NATDEPFILES= infptrace.o solib.o inftarg.o fork-child.o corelow.o \
Index: config/m68k/linux.mh
===================================================================
RCS file: /cvs/src/src/gdb/config/m68k/linux.mh,v
retrieving revision 1.1.1.2
diff -c -3 -p -r1.1.1.2 linux.mh
*** linux.mh 1999/12/07 03:56:10 1.1.1.2
--- linux.mh 2000/03/31 19:05:41
***************
*** 1,7 ****
# Host: Motorola m68k running Linux
XM_FILE= xm-linux.h
! XDEPFILES= ser-tcp.o
NAT_FILE= nm-linux.h
NATDEPFILES= infptrace.o solib.o inftarg.o fork-child.o \
--- 1,7 ----
# Host: Motorola m68k running Linux
XM_FILE= xm-linux.h
! XDEPFILES= ser-tcp.o ser-udp.o
NAT_FILE= nm-linux.h
NATDEPFILES= infptrace.o solib.o inftarg.o fork-child.o \
Index: config/m68k/m68klynx.mh
===================================================================
RCS file: /cvs/src/src/gdb/config/m68k/m68klynx.mh,v
retrieving revision 1.1.1.1
diff -c -3 -p -r1.1.1.1 m68klynx.mh
*** m68klynx.mh 1999/04/16 01:34:21 1.1.1.1
--- m68klynx.mh 2000/03/31 19:05:41
***************
*** 2,8 ****
XM_FILE= xm-m68klynx.h
XM_CLIBS= -lbsd
! XDEPFILES= ser-tcp.o
NAT_FILE= nm-m68klynx.h
NATDEPFILES= fork-child.o infptrace.o inftarg.o corelow.o lynx-nat.o
--- 2,8 ----
XM_FILE= xm-m68klynx.h
XM_CLIBS= -lbsd
! XDEPFILES= ser-tcp.o ser-udp.o
NAT_FILE= nm-m68klynx.h
NATDEPFILES= fork-child.o infptrace.o inftarg.o corelow.o lynx-nat.o
Index: config/m68k/nbsd.mh
===================================================================
RCS file: /cvs/src/src/gdb/config/m68k/nbsd.mh,v
retrieving revision 1.1.1.1
diff -c -3 -p -r1.1.1.1 nbsd.mh
*** nbsd.mh 1999/04/16 01:34:21 1.1.1.1
--- nbsd.mh 2000/03/31 19:05:41
***************
*** 1,5 ****
# Host: Motorola m68k running NetBSD
! XDEPFILES= ser-tcp.o
NATDEPFILES= infptrace.o inftarg.o fork-child.o corelow.o m68knbsd-nat.o
XM_FILE= xm-nbsd.h
NAT_FILE= nm-nbsd.h
--- 1,5 ----
# Host: Motorola m68k running NetBSD
! XDEPFILES= ser-tcp.o ser-udp.o
NATDEPFILES= infptrace.o inftarg.o fork-child.o corelow.o m68knbsd-nat.o
XM_FILE= xm-nbsd.h
NAT_FILE= nm-nbsd.h
Index: config/mips/irix4.mh
===================================================================
RCS file: /cvs/src/src/gdb/config/mips/irix4.mh,v
retrieving revision 1.1.1.3
diff -c -3 -p -r1.1.1.3 irix4.mh
*** irix4.mh 2000/02/01 03:19:17 1.1.1.3
--- irix4.mh 2000/03/31 19:05:42
***************
*** 1,5 ****
# Host: SGI Iris running irix 4.x
! XDEPFILES= ser-tcp.o
XM_FILE= xm-irix4.h
NAT_FILE= nm-irix4.h
NATDEPFILES= fork-child.o irix4-nat.o corelow.o procfs.o \
--- 1,5 ----
# Host: SGI Iris running irix 4.x
! XDEPFILES= ser-tcp.o ser-udp.o
XM_FILE= xm-irix4.h
NAT_FILE= nm-irix4.h
NATDEPFILES= fork-child.o irix4-nat.o corelow.o procfs.o \
Index: config/mips/irix5.mh
===================================================================
RCS file: /cvs/src/src/gdb/config/mips/irix5.mh,v
retrieving revision 1.1.1.3
diff -c -3 -p -r1.1.1.3 irix5.mh
*** irix5.mh 2000/02/01 03:19:17 1.1.1.3
--- irix5.mh 2000/03/31 19:05:42
***************
*** 1,5 ****
# Host: SGI Iris running irix 5.x
! XDEPFILES= ser-tcp.o
XM_FILE= xm-irix5.h
NAT_FILE= nm-irix5.h
NATDEPFILES= fork-child.o irix5-nat.o corelow.o procfs.o \
--- 1,5 ----
# Host: SGI Iris running irix 5.x
! XDEPFILES= ser-tcp.o ser-udp.o
XM_FILE= xm-irix5.h
NAT_FILE= nm-irix5.h
NATDEPFILES= fork-child.o irix5-nat.o corelow.o procfs.o \
Index: config/ns32k/nbsd.mh
===================================================================
RCS file: /cvs/src/src/gdb/config/ns32k/nbsd.mh,v
retrieving revision 1.1.1.1
diff -c -3 -p -r1.1.1.1 nbsd.mh
*** nbsd.mh 1999/04/16 01:34:24 1.1.1.1
--- nbsd.mh 2000/03/31 19:05:42
***************
*** 1,5 ****
# Host: PC532 running NetBSD
! XDEPFILES= ser-tcp.o
XM_FILE= xm-nbsd.h
NAT_FILE= nm-nbsd.h
NATDEPFILES= fork-child.o infptrace.o inftarg.o corelow.o ns32knbsd-nat.o
--- 1,5 ----
# Host: PC532 running NetBSD
! XDEPFILES= ser-tcp.o ser-udp.o
XM_FILE= xm-nbsd.h
NAT_FILE= nm-nbsd.h
NATDEPFILES= fork-child.o infptrace.o inftarg.o corelow.o ns32knbsd-nat.o
Index: config/pa/hppabsd.mh
===================================================================
RCS file: /cvs/src/src/gdb/config/pa/hppabsd.mh,v
retrieving revision 1.1.1.1
diff -c -3 -p -r1.1.1.1 hppabsd.mh
*** hppabsd.mh 1999/04/16 01:34:24 1.1.1.1
--- hppabsd.mh 2000/03/31 19:05:42
***************
*** 1,5 ****
# Host: Hewlett-Packard PA-RISC machine, running BSD
! XDEPFILES= ser-tcp.o
XM_FILE= xm-hppab.h
NAT_FILE= nm-hppab.h
NATDEPFILES= hppab-nat.o corelow.o core-aout.o inftarg.o fork-child.o somread.o infptrace.o hp-psymtab-read.o hp-symtab-read.o somsolib.o
--- 1,5 ----
# Host: Hewlett-Packard PA-RISC machine, running BSD
! XDEPFILES= ser-tcp.o ser-udp.o
XM_FILE= xm-hppab.h
NAT_FILE= nm-hppab.h
NATDEPFILES= hppab-nat.o corelow.o core-aout.o inftarg.o fork-child.o somread.o infptrace.o hp-psymtab-read.o hp-symtab-read.o somsolib.o
Index: config/pa/hppahpux.mh
===================================================================
RCS file: /cvs/src/src/gdb/config/pa/hppahpux.mh,v
retrieving revision 1.1.1.1
diff -c -3 -p -r1.1.1.1 hppahpux.mh
*** hppahpux.mh 1999/04/16 01:34:24 1.1.1.1
--- hppahpux.mh 2000/03/31 19:05:42
***************
*** 1,7 ****
# Host: Hewlett-Packard PA-RISC machine, running HPUX
XM_FILE= xm-hppah.h
! XDEPFILES= ser-tcp.o
NAT_FILE= nm-hppah.h
NATDEPFILES= hppah-nat.o corelow.o core-aout.o inftarg.o fork-child.o somread.o infptrace.o hp-psymtab-read.o hp-symtab-read.o somsolib.o
--- 1,7 ----
# Host: Hewlett-Packard PA-RISC machine, running HPUX
XM_FILE= xm-hppah.h
! XDEPFILES= ser-tcp.o ser-udp.o
NAT_FILE= nm-hppah.h
NATDEPFILES= hppah-nat.o corelow.o core-aout.o inftarg.o fork-child.o somread.o infptrace.o hp-psymtab-read.o hp-symtab-read.o somsolib.o
Index: config/pa/hppaosf.mh
===================================================================
RCS file: /cvs/src/src/gdb/config/pa/hppaosf.mh,v
retrieving revision 1.1.1.1
diff -c -3 -p -r1.1.1.1 hppaosf.mh
*** hppaosf.mh 1999/04/16 01:34:24 1.1.1.1
--- hppaosf.mh 2000/03/31 19:05:42
***************
*** 1,5 ****
# Host: Hewlett-Packard PA-RISC machine, running BSD
! XDEPFILES= ser-tcp.o
XM_FILE= xm-hppab.h
NAT_FILE= nm-hppao.h
NATDEPFILES= fork-child.o m3-nat.o hppam3-nat.o somread.o hp-psymtab-read.o hp-symtab-read.o somsolib.o
--- 1,5 ----
# Host: Hewlett-Packard PA-RISC machine, running BSD
! XDEPFILES= ser-tcp.o ser-udp.o
XM_FILE= xm-hppab.h
NAT_FILE= nm-hppao.h
NATDEPFILES= fork-child.o m3-nat.o hppam3-nat.o somread.o hp-psymtab-read.o hp-symtab-read.o somsolib.o
Index: config/pa/hpux1020.mh
===================================================================
RCS file: /cvs/src/src/gdb/config/pa/hpux1020.mh,v
retrieving revision 1.1.1.1
diff -c -3 -p -r1.1.1.1 hpux1020.mh
*** hpux1020.mh 1999/04/16 01:34:24 1.1.1.1
--- hpux1020.mh 2000/03/31 19:05:42
***************
*** 3,9 ****
MH_CFLAGS = -D__HP_CURSES
XM_FILE= xm-hppah.h
! XDEPFILES= ser-tcp.o
NAT_FILE= nm-hppah.h
NATDEPFILES= hppah-nat.o corelow.o core-aout.o inftarg.o fork-child.o infptrace.o somread.o hp-psymtab-read.o hp-symtab-read.o somsolib.o
--- 3,9 ----
MH_CFLAGS = -D__HP_CURSES
XM_FILE= xm-hppah.h
! XDEPFILES= ser-tcp.o ser-udp.o
NAT_FILE= nm-hppah.h
NATDEPFILES= hppah-nat.o corelow.o core-aout.o inftarg.o fork-child.o infptrace.o somread.o hp-psymtab-read.o hp-symtab-read.o somsolib.o
Index: config/pa/hpux11.mh
===================================================================
RCS file: /cvs/src/src/gdb/config/pa/hpux11.mh,v
retrieving revision 1.1.1.1
diff -c -3 -p -r1.1.1.1 hpux11.mh
*** hpux11.mh 1999/08/23 22:37:07 1.1.1.1
--- hpux11.mh 2000/03/31 19:05:42
***************
*** 3,9 ****
MH_CFLAGS = -D__HP_CURSES
XM_FILE= xm-hppah.h
! XDEPFILES= ser-tcp.o
NAT_FILE= nm-hppah11.h
NATDEPFILES= hppah-nat.o corelow.o core-aout.o inftarg.o fork-child.o infttrace.o somread.o hp-psymtab-read.o hp-symtab-read.o somsolib.o
--- 3,9 ----
MH_CFLAGS = -D__HP_CURSES
XM_FILE= xm-hppah.h
! XDEPFILES= ser-tcp.o ser-udp.o
NAT_FILE= nm-hppah11.h
NATDEPFILES= hppah-nat.o corelow.o core-aout.o inftarg.o fork-child.o infttrace.o somread.o hp-psymtab-read.o hp-symtab-read.o somsolib.o
Index: config/pa/hpux11w.mh
===================================================================
RCS file: /cvs/src/src/gdb/config/pa/hpux11w.mh,v
retrieving revision 1.1.1.1
diff -c -3 -p -r1.1.1.1 hpux11w.mh
*** hpux11w.mh 1999/08/23 22:37:07 1.1.1.1
--- hpux11w.mh 2000/03/31 19:05:42
***************
*** 3,9 ****
MH_CFLAGS = -D__HP_CURSES
XM_FILE= xm-hppah.h
! XDEPFILES= ser-tcp.o
NAT_FILE= nm-hppah11.h
NATDEPFILES= hppah-nat.o corelow.o core-aout.o inftarg.o fork-child.o infttrace.o hp-psymtab-read.o hp-symtab-read.o pa64solib.o
--- 3,9 ----
MH_CFLAGS = -D__HP_CURSES
XM_FILE= xm-hppah.h
! XDEPFILES= ser-tcp.o ser-udp.o
NAT_FILE= nm-hppah11.h
NATDEPFILES= hppah-nat.o corelow.o core-aout.o inftarg.o fork-child.o infttrace.o hp-psymtab-read.o hp-symtab-read.o pa64solib.o
Index: config/powerpc/cygwin.mh
===================================================================
RCS file: /cvs/src/src/gdb/config/powerpc/cygwin.mh,v
retrieving revision 1.1.1.1
diff -c -3 -p -r1.1.1.1 cygwin.mh
*** cygwin.mh 1999/04/16 01:34:24 1.1.1.1
--- cygwin.mh 2000/03/31 19:05:43
***************
*** 1,5 ****
MH_CFLAGS=
XM_FILE=xm-cygwin.h
! XDEP_FILES=ser-tcp.o
NATDEPFILES=win32-nat.o
XM_CLIBS=-lkernel32
--- 1,5 ----
MH_CFLAGS=
XM_FILE=xm-cygwin.h
! XDEP_FILES=ser-tcp.o ser-udp.o
NATDEPFILES=win32-nat.o
XM_CLIBS=-lkernel32
Index: config/powerpc/linux.mh
===================================================================
RCS file: /cvs/src/src/gdb/config/powerpc/linux.mh,v
retrieving revision 1.2
diff -c -3 -p -r1.2 linux.mh
*** linux.mh 2000/02/22 01:27:34 1.2
--- linux.mh 2000/03/31 19:05:43
***************
*** 1,7 ****
# Host: PowerPC, running Linux
XM_FILE= xm-linux.h
! XDEPFILES= ser-tcp.o
XM_CLIBS=
NAT_FILE= nm-linux.h
--- 1,7 ----
# Host: PowerPC, running Linux
XM_FILE= xm-linux.h
! XDEPFILES= ser-tcp.o ser-udp.o
XM_CLIBS=
NAT_FILE= nm-linux.h
Index: config/powerpc/solaris.mh
===================================================================
RCS file: /cvs/src/src/gdb/config/powerpc/solaris.mh,v
retrieving revision 1.1.1.3
diff -c -3 -p -r1.1.1.3 solaris.mh
*** solaris.mh 2000/02/01 03:19:18 1.1.1.3
--- solaris.mh 2000/03/31 19:05:43
***************
*** 1,7 ****
# Host: PowerPC, running Solaris 2
XM_FILE= xm-solaris.h
! XDEPFILES= ser-tcp.o
XM_CLIBS= -lsocket -lnsl
NAT_FILE= nm-solaris.h
--- 1,7 ----
# Host: PowerPC, running Solaris 2
XM_FILE= xm-solaris.h
! XDEPFILES= ser-tcp.o ser-udp.o
XM_CLIBS= -lsocket -lnsl
NAT_FILE= nm-solaris.h
Index: config/rs6000/rs6000lynx.mh
===================================================================
RCS file: /cvs/src/src/gdb/config/rs6000/rs6000lynx.mh,v
retrieving revision 1.1.1.1
diff -c -3 -p -r1.1.1.1 rs6000lynx.mh
*** rs6000lynx.mh 1999/04/16 01:34:25 1.1.1.1
--- rs6000lynx.mh 2000/03/31 19:05:43
***************
*** 1,7 ****
# Host: RS6000 running LynxOS
XM_FILE= xm-rs6000ly.h
! XDEPFILES= ser-tcp.o
XM_CLIBS= -lbsd
NAT_FILE= nm-rs6000ly.h
--- 1,7 ----
# Host: RS6000 running LynxOS
XM_FILE= xm-rs6000ly.h
! XDEPFILES= ser-tcp.o ser-udp.o
XM_CLIBS= -lbsd
NAT_FILE= nm-rs6000ly.h
Index: config/sparc/linux.mh
===================================================================
RCS file: /cvs/src/src/gdb/config/sparc/linux.mh,v
retrieving revision 1.1.1.2
diff -c -3 -p -r1.1.1.2 linux.mh
*** linux.mh 1999/12/07 03:56:12 1.1.1.2
--- linux.mh 2000/03/31 19:05:43
***************
*** 1,5 ****
# Host: Sparcstation, running Linux
! XDEPFILES= ser-tcp.o
XM_FILE= xm-linux.h
NAT_FILE= nm-linux.h
NATDEPFILES= fork-child.o infptrace.o inftarg.o corelow.o sparc-nat.o \
--- 1,5 ----
# Host: Sparcstation, running Linux
! XDEPFILES= ser-tcp.o ser-udp.o
XM_FILE= xm-linux.h
NAT_FILE= nm-linux.h
NATDEPFILES= fork-child.o infptrace.o inftarg.o corelow.o sparc-nat.o \
Index: config/sparc/nbsd.mh
===================================================================
RCS file: /cvs/src/src/gdb/config/sparc/nbsd.mh,v
retrieving revision 1.1.1.2
diff -c -3 -p -r1.1.1.2 nbsd.mh
*** nbsd.mh 1999/12/14 01:05:42 1.1.1.2
--- nbsd.mh 2000/03/31 19:05:43
***************
*** 1,5 ****
# Host: Sun 4 or Sparcstation, running NetBSD
! XDEPFILES= ser-tcp.o
XM_FILE= xm-nbsd.h
NAT_FILE= nm-nbsd.h
NATDEPFILES= fork-child.o infptrace.o inftarg.o corelow.o sparc-nat.o solib.o
--- 1,5 ----
# Host: Sun 4 or Sparcstation, running NetBSD
! XDEPFILES= ser-tcp.o ser-udp.o
XM_FILE= xm-nbsd.h
NAT_FILE= nm-nbsd.h
NATDEPFILES= fork-child.o infptrace.o inftarg.o corelow.o sparc-nat.o solib.o
Index: config/sparc/nbsdelf.mh
===================================================================
RCS file: /cvs/src/src/gdb/config/sparc/nbsdelf.mh,v
retrieving revision 1.1.1.1
diff -c -3 -p -r1.1.1.1 nbsdelf.mh
*** nbsdelf.mh 1999/12/14 01:05:42 1.1.1.1
--- nbsdelf.mh 2000/03/31 19:05:43
***************
*** 1,5 ****
# Host: Sun 4 or Sparcstation, running NetBSD
! XDEPFILES= ser-tcp.o
XM_FILE= xm-nbsd.h
NAT_FILE= nm-nbsdelf.h
NATDEPFILES= fork-child.o infptrace.o inftarg.o corelow.o sparc-nat.o solib.o
--- 1,5 ----
# Host: Sun 4 or Sparcstation, running NetBSD
! XDEPFILES= ser-tcp.o ser-udp.o
XM_FILE= xm-nbsd.h
NAT_FILE= nm-nbsdelf.h
NATDEPFILES= fork-child.o infptrace.o inftarg.o corelow.o sparc-nat.o solib.o
Index: config/sparc/sparclynx.mh
===================================================================
RCS file: /cvs/src/src/gdb/config/sparc/sparclynx.mh,v
retrieving revision 1.1.1.1
diff -c -3 -p -r1.1.1.1 sparclynx.mh
*** sparclynx.mh 1999/04/16 01:34:25 1.1.1.1
--- sparclynx.mh 2000/03/31 19:05:43
***************
*** 1,7 ****
# Host: Sparc running LynxOS
XM_FILE= xm-sparclynx.h
! XDEPFILES= ser-tcp.o
XM_CLIBS= -lbsd
NAT_FILE= nm-sparclynx.h
--- 1,7 ----
# Host: Sparc running LynxOS
XM_FILE= xm-sparclynx.h
! XDEPFILES= ser-tcp.o ser-udp.o
XM_CLIBS= -lbsd
NAT_FILE= nm-sparclynx.h
Index: config/sparc/sun4os4.mh
===================================================================
RCS file: /cvs/src/src/gdb/config/sparc/sun4os4.mh,v
retrieving revision 1.1.1.1
diff -c -3 -p -r1.1.1.1 sun4os4.mh
*** sun4os4.mh 1999/04/16 01:34:26 1.1.1.1
--- sun4os4.mh 2000/03/31 19:05:44
***************
*** 1,5 ****
# Host: Sun 4 or Sparcstation, running SunOS 4
! XDEPFILES= ser-tcp.o
XM_FILE= xm-sun4os4.h
NAT_FILE= nm-sun4os4.h
NATDEPFILES= fork-child.o infptrace.o inftarg.o corelow.o sparc-nat.o
--- 1,5 ----
# Host: Sun 4 or Sparcstation, running SunOS 4
! XDEPFILES= ser-tcp.o ser-udp.o
XM_FILE= xm-sun4os4.h
NAT_FILE= nm-sun4os4.h
NATDEPFILES= fork-child.o infptrace.o inftarg.o corelow.o sparc-nat.o
Index: config/sparc/sun4sol2.mh
===================================================================
RCS file: /cvs/src/src/gdb/config/sparc/sun4sol2.mh,v
retrieving revision 1.1.1.3
diff -c -3 -p -r1.1.1.3 sun4sol2.mh
*** sun4sol2.mh 2000/01/25 02:40:07 1.1.1.3
--- sun4sol2.mh 2000/03/31 19:05:44
***************
*** 1,7 ****
# Host: Sun 4 or Sparcstation, running Solaris 2
XM_FILE= xm-sun4sol2.h
! XDEPFILES= ser-tcp.o
XM_CLIBS= -lsocket -lnsl
NAT_FILE= nm-sun4sol2.h
--- 1,7 ----
# Host: Sun 4 or Sparcstation, running Solaris 2
XM_FILE= xm-sun4sol2.h
! XDEPFILES= ser-tcp.o ser-udp.o
XM_CLIBS= -lsocket -lnsl
NAT_FILE= nm-sun4sol2.h
Index: doc/gdbint.texinfo
===================================================================
RCS file: /cvs/src/src/gdb/doc/gdbint.texinfo,v
retrieving revision 1.4
diff -c -3 -p -r1.4 gdbint.texinfo
*** gdbint.texinfo 2000/03/23 23:50:51 1.4
--- gdbint.texinfo 2000/03/31 19:06:14
*************** using the GO32 execution environment.
*** 905,910 ****
--- 905,913 ----
@item ser-tcp.c
This contains generic TCP support using sockets.
+ @item ser-udp.c
+ This contains generic UDP support using sockets.
+
@end table
@section Host Conditionals
From nsd@cygnus.com Sat Apr 01 07:55:00 2000
From: Nick Duffek <nsd@cygnus.com>
To: gdb-patches@sourceware.cygnus.com
Subject: Re: RFA: patch to ignore C++ method conversion errors
Date: Sat, 01 Apr 2000 07:55:00 -0000
Message-id: <200004011557.e31Fv0l04573@rtl.cygnus.com>
X-SW-Source: 2000-04/msg00001.html
Content-length: 3635
I wrote:
>I'll go ahead and change my patch to use wrapper.c
Here's the wrapperized patch. No regressions were evident. I'll go ahead
and commit it if there are no objections.
Nick
Index: gdbtypes.c
===================================================================
RCS file: /cvs/src/src/gdb/gdbtypes.c,v
retrieving revision 1.6
diff -u -r1.6 gdbtypes.c
--- gdbtypes.c 2000/03/28 02:25:14 1.6
+++ gdbtypes.c 2000/04/01 06:12:58
@@ -33,6 +33,7 @@
#include "demangle.h"
#include "complaints.h"
#include "gdbcmd.h"
+#include "wrapper.h"
/* These variables point to the objects
representing the predefined C data types. */
@@ -1422,6 +1423,30 @@
#undef ADD_EXTRA
/* End of new code added to support parsing of Cfront stabs strings */
+/* Parse a type expression in the string [P..P+LENGTH). If an error occurs,
+ silently return builtin_type_void. */
+
+struct type *
+safe_parse_type (char *p, int length)
+{
+ struct ui_file *saved_gdb_stderr;
+ struct type *type;
+
+ /* Suppress error messages. */
+ saved_gdb_stderr = gdb_stderr;
+ gdb_stderr = ui_file_new ();
+
+ /* Call parse_and_eval_type() without fear of longjmp()s. */
+ if (!gdb_parse_and_eval_type (p, length, &type))
+ type = builtin_type_void;
+
+ /* Stop suppressing error messages. */
+ ui_file_delete (gdb_stderr);
+ gdb_stderr = saved_gdb_stderr;
+
+ return type;
+}
+
/* Ugly hack to convert method stubs into method types.
He ain't kiddin'. This demangles the name of the method into a string
@@ -1496,7 +1521,7 @@
if (strncmp (argtypetext, "...", p - argtypetext) != 0)
{
argtypes[argcount] =
- parse_and_eval_type (argtypetext, p - argtypetext);
+ safe_parse_type (argtypetext, p - argtypetext);
argcount += 1;
}
argtypetext = p + 1;
Index: wrapper.c
===================================================================
RCS file: /cvs/src/src/gdb/wrapper.c,v
retrieving revision 1.4
diff -u -r1.4 wrapper.c
--- wrapper.c 2000/03/30 20:15:35 1.4
+++ wrapper.c 2000/04/01 06:12:58
@@ -61,6 +61,9 @@
int gdb_value_ind PARAMS ((value_ptr val, value_ptr * rval));
int wrap_value_ind PARAMS ((char *opaque_arg));
+int gdb_parse_and_eval_type (char *, int, struct type **);
+int wrap_parse_and_eval_type (char *);
+
int
gdb_parse_exp_1 (stringptr, block, comma, expression)
char **stringptr;
@@ -252,3 +255,33 @@
return 1;
}
+int
+gdb_parse_and_eval_type (char *p, int length, struct type **type)
+{
+ struct gdb_wrapper_arguments args;
+ args.args[0].pointer = p;
+ args.args[1].integer = length;
+
+ if (!catch_errors ((catch_errors_ftype *) wrap_parse_and_eval_type, &args,
+ "", RETURN_MASK_ALL))
+ {
+ /* An error occurred */
+ return 0;
+ }
+
+ *type = (struct type *) args.result.pointer;
+ return 1;
+}
+
+int
+wrap_parse_and_eval_type (char *a)
+{
+ struct gdb_wrapper_arguments *args = (struct gdb_wrapper_arguments *) a;
+
+ char *p = (char *) args->args[0].pointer;
+ int length = args->args[1].integer;
+
+ args->result.pointer = (char *) parse_and_eval_type (p, length);
+
+ return 1;
+}
Index: wrapper.h
===================================================================
RCS file: /cvs/src/src/gdb/wrapper.h,v
retrieving revision 1.2
diff -u -r1.2 wrapper.h
--- wrapper.h 2000/03/13 21:51:45 1.2
+++ wrapper.h 2000/04/01 06:12:58
@@ -38,4 +38,7 @@
extern int gdb_value_ind PARAMS ((value_ptr val, value_ptr * rval));
extern int wrap_value_ind PARAMS ((char *opaque_arg));
+extern int gdb_parse_and_eval_type (char *, int, struct type **);
+extern int wrap_parse_and_eval_type (char *);
+
#endif /* WRAPPER_H */
From dan@cgsoftware.com Sat Apr 01 08:47:00 2000
From: Daniel Berlin <dan@cgsoftware.com>
To: Nick Duffek <nsd@cygnus.com>
Cc: gdb-patches@sourceware.cygnus.com
Subject: Re: RFA: patch to ignore C++ method conversion errors
Date: Sat, 01 Apr 2000 08:47:00 -0000
Message-id: <Pine.LNX.4.10.10004010843150.18700-100000@propylaea.anduin.com>
References: <200004011557.e31Fv0l04573@rtl.cygnus.com>
X-SW-Source: 2000-04/msg00002.html
Content-length: 4132
Please do commit it.
I've been reworking the RTTI stuff, and value_virtual_fn_field, in an
attempt to remove every single expected failure from virtfunc.exp
I'm down to 3 failures, from 9.
On Sat, 1 Apr 2000, Nick Duffek wrote:
> I wrote:
>
> >I'll go ahead and change my patch to use wrapper.c
>
> Here's the wrapperized patch. No regressions were evident. I'll go ahead
> and commit it if there are no objections.
>
> Nick
>
> Index: gdbtypes.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/gdbtypes.c,v
> retrieving revision 1.6
> diff -u -r1.6 gdbtypes.c
> --- gdbtypes.c 2000/03/28 02:25:14 1.6
> +++ gdbtypes.c 2000/04/01 06:12:58
> @@ -33,6 +33,7 @@
> #include "demangle.h"
> #include "complaints.h"
> #include "gdbcmd.h"
> +#include "wrapper.h"
>
> /* These variables point to the objects
> representing the predefined C data types. */
> @@ -1422,6 +1423,30 @@
> #undef ADD_EXTRA
> /* End of new code added to support parsing of Cfront stabs strings */
>
> +/* Parse a type expression in the string [P..P+LENGTH). If an error occurs,
> + silently return builtin_type_void. */
> +
> +struct type *
> +safe_parse_type (char *p, int length)
> +{
> + struct ui_file *saved_gdb_stderr;
> + struct type *type;
> +
> + /* Suppress error messages. */
> + saved_gdb_stderr = gdb_stderr;
> + gdb_stderr = ui_file_new ();
> +
> + /* Call parse_and_eval_type() without fear of longjmp()s. */
> + if (!gdb_parse_and_eval_type (p, length, &type))
> + type = builtin_type_void;
> +
> + /* Stop suppressing error messages. */
> + ui_file_delete (gdb_stderr);
> + gdb_stderr = saved_gdb_stderr;
> +
> + return type;
> +}
> +
> /* Ugly hack to convert method stubs into method types.
>
> He ain't kiddin'. This demangles the name of the method into a string
> @@ -1496,7 +1521,7 @@
> if (strncmp (argtypetext, "...", p - argtypetext) != 0)
> {
> argtypes[argcount] =
> - parse_and_eval_type (argtypetext, p - argtypetext);
> + safe_parse_type (argtypetext, p - argtypetext);
> argcount += 1;
> }
> argtypetext = p + 1;
> Index: wrapper.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/wrapper.c,v
> retrieving revision 1.4
> diff -u -r1.4 wrapper.c
> --- wrapper.c 2000/03/30 20:15:35 1.4
> +++ wrapper.c 2000/04/01 06:12:58
> @@ -61,6 +61,9 @@
> int gdb_value_ind PARAMS ((value_ptr val, value_ptr * rval));
> int wrap_value_ind PARAMS ((char *opaque_arg));
>
> +int gdb_parse_and_eval_type (char *, int, struct type **);
> +int wrap_parse_and_eval_type (char *);
> +
> int
> gdb_parse_exp_1 (stringptr, block, comma, expression)
> char **stringptr;
> @@ -252,3 +255,33 @@
> return 1;
> }
>
> +int
> +gdb_parse_and_eval_type (char *p, int length, struct type **type)
> +{
> + struct gdb_wrapper_arguments args;
> + args.args[0].pointer = p;
> + args.args[1].integer = length;
> +
> + if (!catch_errors ((catch_errors_ftype *) wrap_parse_and_eval_type, &args,
> + "", RETURN_MASK_ALL))
> + {
> + /* An error occurred */
> + return 0;
> + }
> +
> + *type = (struct type *) args.result.pointer;
> + return 1;
> +}
> +
> +int
> +wrap_parse_and_eval_type (char *a)
> +{
> + struct gdb_wrapper_arguments *args = (struct gdb_wrapper_arguments *) a;
> +
> + char *p = (char *) args->args[0].pointer;
> + int length = args->args[1].integer;
> +
> + args->result.pointer = (char *) parse_and_eval_type (p, length);
> +
> + return 1;
> +}
> Index: wrapper.h
> ===================================================================
> RCS file: /cvs/src/src/gdb/wrapper.h,v
> retrieving revision 1.2
> diff -u -r1.2 wrapper.h
> --- wrapper.h 2000/03/13 21:51:45 1.2
> +++ wrapper.h 2000/04/01 06:12:58
> @@ -38,4 +38,7 @@
> extern int gdb_value_ind PARAMS ((value_ptr val, value_ptr * rval));
> extern int wrap_value_ind PARAMS ((char *opaque_arg));
>
> +extern int gdb_parse_and_eval_type (char *, int, struct type **);
> +extern int wrap_parse_and_eval_type (char *);
> +
> #endif /* WRAPPER_H */
>
WARNING: multiple messages have this Message-ID
From: Fernando Nasser <fnasser@cygnus.com>
To: Momchil Velikov <velco@fadata.bg>
Cc: GDB Patch List <gdb-patches@sourceware.cygnus.com>
Subject: Re: [Fwd: [patch] UDP transport support]
Date: Sat, 01 Apr 2000 00:00:00 -0000 [thread overview]
Message-ID: <38E4F1CD.9265272D@cygnus.com> (raw)
Message-ID: <20000401000000.D2mKW0fQjzUrji97Jan6EVNOmMqq92RC2ZvUsmsHtMc@z> (raw)
In-Reply-To: <38E39B66.3857BDFD@fadata.bg>
> Do you mind changing the syntax the parameter NAME to
> serial.c:serial_open () to
> tcp:<host>:<port>, and
> udp:<host>:<port>
> for TCP and UDP connections, respectively ?
Hi,
Please make sure tcp is assumed by default so the current behavior is not changed.
--
Fernando Nasser
Red Hat - Toronto E-Mail: fnasser@cygnus.com
2323 Yonge Street, Suite #300 Tel: 416-482-2661 ext. 311
Toronto, Ontario M4P 2C9 Fax: 416-482-6299
From kingdon@redhat.com Sat Apr 01 00:00:00 2000
From: Jim Kingdon <kingdon@redhat.com>
To: gdb-patches@sourceware.cygnus.com
Subject: Re: Patches to add i387 support to Solaris x86 platforms
Date: Sat, 01 Apr 2000 00:00:00 -0000
Message-id: <bu2iuisqt.fsf@rtl.cygnus.com>
References: <200002240845.JAA27280@reisser.regent.e-technik.tu-muenchen.de>
X-SW-Source: 2000-q1/msg00379.html
Content-length: 309
Hello again Peter! Funny that we've both ended up back on the GDB
beat after all these years.
> The following patches add i387 support for Solaris x86 platforms
I didn't see any problems with those patches.
I don't see a maintainer listed for Solaris x86, so I guess this falls
to Andrew or Stan.
From rearnsha@arm.com Sat Apr 01 00:00:00 2000
From: Richard Earnshaw <rearnsha@arm.com>
To: Scott Bambrough <scottb@netwinder.org>
Cc: rearnsha@arm.com
Subject: Re: RFC: Patch to arm-tdep.c -- Register flavors
Date: Sat, 01 Apr 2000 00:00:00 -0000
Message-id: <200002161539.PAA12704@cam-mail2.cambridge.arm.com>
References: <38AAC291.38C9F512@netwinder.org>
X-SW-Source: 2000-q1/msg00182.html
Content-length: 1027
> > And finally, the ps register name is wrong, especially in the A{T}PCS area
> > but also more generally; the name is "cpsr" in all ARM documentation (the
> > "ps" name comes from when the processor flags weren't really a separate
> > register -- they were in the unused parts of r15 -- so there was no name).
>
> Richard is correct here, in arm-linux-nat.c, I initialize the PS register with
> the contents of CPSR if arm_apcs_32 is set, or with the contents of the PC if
> not. Perhaps we should set the register name based on this information as well.
This is one of the few cases where I would just delete the old name. Old
processors never had a specific flags register, so the 'ps' name was
'invented' by the original porter of gdb. Since then the cpsr name has
come into use and I doubt that even users debugging in 26-bit mode would
object violently to this name changing (maybe we can support "ps" as an
alias when parsing user input, but I see no point in ever printing
anything other than "cpsr".
R.
next parent reply other threads:[~2000-03-31 10:43 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <38E39B66.3857BDFD@fadata.bg>
2000-03-31 10:43 ` Fernando Nasser [this message]
2000-04-01 0:00 ` Fernando Nasser
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=38E4F1CD.9265272D@cygnus.com \
--to=fnasser@cygnus.com \
--cc=gdb-patches@sourceware.cygnus.com \
--cc=velco@fadata.bg \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox