mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-04 22:15:12 +08:00
Fix C++ overload support, see through references
This commit is contained in:
414
gdb/ChangeLog
414
gdb/ChangeLog
@ -1,3 +1,33 @@
|
|||||||
|
2000-03-10 Daniel Berlin <dan@cgsoftware.com>
|
||||||
|
Fix C++ overloading, add support for seeing through references.
|
||||||
|
|
||||||
|
* defs.h (STREQ_IW): add STREQ_IW, like STREQ, except it's
|
||||||
|
whitespace insensitive
|
||||||
|
|
||||||
|
* valops.c (find_overload_match): Handle STABS overloading for
|
||||||
|
C++.
|
||||||
|
(find_overload_match): Look in right place for function arguments
|
||||||
|
in the debug info.
|
||||||
|
(find_overload_match): Rather than giving up when we have >1
|
||||||
|
perfect match, just choose one, especially since the
|
||||||
|
recommendation GDB gives ("disambiguate it by specifying function
|
||||||
|
signature"), is basically impossible.
|
||||||
|
(check_field_in): STREQ->STREQ_IW
|
||||||
|
(search_struct_field): STREQ->STREQ_IW
|
||||||
|
(find_method_list): STREQ->STREQ_IW
|
||||||
|
|
||||||
|
* gdbtypes.c (rank_one_type): Add ability to see through
|
||||||
|
references.
|
||||||
|
(rank_one_type): strcmp->strcmp_iw, because the whitespace could
|
||||||
|
be different.
|
||||||
|
(rank_function): Rank function properly (was doing it wrong
|
||||||
|
before, comparing the wrong parts of the arrays)
|
||||||
|
(rank_one_type): Change #if 0 to #ifdef DEBUG_OLOAD.
|
||||||
|
|
||||||
|
* gdbtypes.h: Add REFERENCE_CONVERSION_BADNESS for "badness"
|
||||||
|
associated with converting a non-reference to a reference.
|
||||||
|
|
||||||
|
|
||||||
Fri Mar 10 11:44:55 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
Fri Mar 10 11:44:55 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||||
|
|
||||||
* MAINTAINERS: Devolve responsibility for domain maintenance.
|
* MAINTAINERS: Devolve responsibility for domain maintenance.
|
||||||
@ -14,8 +44,8 @@ Fri Mar 10 11:44:55 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||||||
Thu Mar 9 14:21:07 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
Thu Mar 9 14:21:07 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||||
|
|
||||||
* MAINTAINERS (Core): Anthony Green is the Java - including
|
* MAINTAINERS (Core): Anthony Green is the Java - including
|
||||||
testsuite - maintainer. Reformat testsuite and language support
|
testsuite - maintainer. Reformat testsuite and language support
|
||||||
sections
|
sections
|
||||||
|
|
||||||
2000-03-08 Mark Kettenis <kettenis@gnu.org>
|
2000-03-08 Mark Kettenis <kettenis@gnu.org>
|
||||||
|
|
||||||
@ -51,7 +81,7 @@ Thu Mar 9 14:21:07 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||||||
|
|
||||||
2000-03-06 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
|
2000-03-06 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
|
||||||
|
|
||||||
From Eli Zaretskii <eliz@is.elta.co.il>:
|
From Eli Zaretskii <eliz@is.elta.co.il>:
|
||||||
|
|
||||||
* event-loop.c (poll_timers): Don't compare delta.tv_sec with
|
* event-loop.c (poll_timers): Don't compare delta.tv_sec with
|
||||||
zero, since time_t might be unsigned.
|
zero, since time_t might be unsigned.
|
||||||
@ -128,13 +158,13 @@ Sun Mar 5 19:40:27 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||||||
(i386_linux_sigcontext_addr): New function. Recognize the names
|
(i386_linux_sigcontext_addr): New function. Recognize the names
|
||||||
of the signal tranmpolines used by recent versions of the GNU C
|
of the signal tranmpolines used by recent versions of the GNU C
|
||||||
library, and add support for RT signals.
|
library, and add support for RT signals.
|
||||||
(LINUX_SIGCONTEXT_PC_OFFSET, LINUX_SIGCONTEXT_SP_OFFSET): New
|
(LINUX_SIGCONTEXT_PC_OFFSET, LINUX_SIGCONTEXT_SP_OFFSET): New
|
||||||
defines. Moved here from config/i386/tm-linux.h.
|
defines. Moved here from config/i386/tm-linux.h.
|
||||||
(i386_linux_sigtramp_saved_pc, i386_linux_sigtramp_saved_sp):
|
(i386_linux_sigtramp_saved_pc, i386_linux_sigtramp_saved_sp):
|
||||||
Reimplement in terms of i386_linux_sigcontext_addr.
|
Reimplement in terms of i386_linux_sigcontext_addr.
|
||||||
* config/i386/tm-linux.h (LINUX_SIGCONTEXT_SIZE): Removed.
|
* config/i386/tm-linux.h (LINUX_SIGCONTEXT_SIZE): Removed.
|
||||||
(LINUX_SIGCONTEXT_PC_OFFSET, LINUX_SIGCONTEXT_SP_OFFSET):
|
(LINUX_SIGCONTEXT_PC_OFFSET, LINUX_SIGCONTEXT_SP_OFFSET):
|
||||||
Moved to i386-tdep.c.
|
Moved to i386-tdep.c.
|
||||||
(IN_SIGTRAMP): Redefine to call i386_linux_in_sigtramp.
|
(IN_SIGTRAMP): Redefine to call i386_linux_in_sigtramp.
|
||||||
|
|
||||||
Sat Mar 4 19:38:11 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
Sat Mar 4 19:38:11 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||||
@ -145,57 +175,57 @@ Sat Mar 4 19:38:11 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||||||
Sat Mar 4 17:23:06 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
Sat Mar 4 17:23:06 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||||
|
|
||||||
* MAINTAINERS: Frank Ch. Eigler and Andrew Cagney co-ordinate the
|
* MAINTAINERS: Frank Ch. Eigler and Andrew Cagney co-ordinate the
|
||||||
sim directory.
|
sim directory.
|
||||||
|
|
||||||
Sat Mar 4 16:19:31 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
Sat Mar 4 16:19:31 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||||
|
|
||||||
* MAINTAINERS: Add Michael Snyder and Peter Schauer to list of
|
* MAINTAINERS: Add Michael Snyder and Peter Schauer to list of
|
||||||
``Blanket Write Privs'' maintainers.
|
``Blanket Write Privs'' maintainers.
|
||||||
|
|
||||||
Sat Mar 4 15:58:40 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
Sat Mar 4 15:58:40 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||||
|
|
||||||
From Sun 20 Feb 2000 Robert Lipe <robertl@sco.com>:
|
From Sun 20 Feb 2000 Robert Lipe <robertl@sco.com>:
|
||||||
* language.c (longest_local_hex_string_custom): Don't compile
|
* language.c (longest_local_hex_string_custom): Don't compile
|
||||||
'long long' section if host doesn't have 'long long'.
|
'long long' section if host doesn't have 'long long'.
|
||||||
|
|
||||||
Sat Mar 4 15:45:38 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
Sat Mar 4 15:45:38 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||||
|
|
||||||
* language.c (longest_raw_hex_string): Comment out. Appears
|
* language.c (longest_raw_hex_string): Comment out. Appears
|
||||||
unused.
|
unused.
|
||||||
|
|
||||||
Sat Mar 4 13:02:09 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
Sat Mar 4 13:02:09 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||||
|
|
||||||
* utils.c (mcalloc), defs.h (mcalloc): Keep consistent with
|
* utils.c (mcalloc), defs.h (mcalloc): Keep consistent with
|
||||||
"mmalloc.h" which means using PTRs.
|
"mmalloc.h" which means using PTRs.
|
||||||
(init_malloc, msavestring, mstrsave): Convert to PTR free ISO-C.
|
(init_malloc, msavestring, mstrsave): Convert to PTR free ISO-C.
|
||||||
|
|
||||||
Sat Mar 4 11:49:21 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
Sat Mar 4 11:49:21 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||||
|
|
||||||
* defs.h (store_address, store_unsigned_integer, store_address):
|
* defs.h (store_address, store_unsigned_integer, store_address):
|
||||||
Replace PTR with void* in delcaration.
|
Replace PTR with void* in delcaration.
|
||||||
* findvar.c (extract_signed_integer, extract_unsigned_integer,
|
* findvar.c (extract_signed_integer, extract_unsigned_integer,
|
||||||
extract_long_unsigned_integer, extract_address,
|
extract_long_unsigned_integer, extract_address,
|
||||||
store_signed_integer, store_unsigned_integer, store_address):
|
store_signed_integer, store_unsigned_integer, store_address):
|
||||||
Convert definition to ISO-C. Replace PTR with void*.
|
Convert definition to ISO-C. Replace PTR with void*.
|
||||||
|
|
||||||
Sat Mar 4 10:57:25 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
Sat Mar 4 10:57:25 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||||
|
|
||||||
* defs.h (make_cleanup_func): Document as deprecated.
|
* defs.h (make_cleanup_func): Document as deprecated.
|
||||||
(make_cleanup_ftype): New typedef. Make signature consistent with
|
(make_cleanup_ftype): New typedef. Make signature consistent with
|
||||||
other function typedefs. Document as not be used out side of
|
other function typedefs. Document as not be used out side of
|
||||||
make_cleanup code. Use in make_cleanup declarations.
|
make_cleanup code. Use in make_cleanup declarations.
|
||||||
(null_cleanup): Replace PTR with void*.
|
(null_cleanup): Replace PTR with void*.
|
||||||
|
|
||||||
* utils.c (make_cleanup, make_final_cleanup, make_run_cleanup,
|
* utils.c (make_cleanup, make_final_cleanup, make_run_cleanup,
|
||||||
make_exec_cleanup, make_exec_error_cleanup, make_my_cleanup,
|
make_exec_cleanup, make_exec_error_cleanup, make_my_cleanup,
|
||||||
null_cleanup): Change K&R definition to ISO-C using void* and
|
null_cleanup): Change K&R definition to ISO-C using void* and
|
||||||
make_cleanup_fytpe.
|
make_cleanup_fytpe.
|
||||||
(discard_my_cleanups): Don't cast argument to free.
|
(discard_my_cleanups): Don't cast argument to free.
|
||||||
|
|
||||||
2000-03-03 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
|
2000-03-03 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
|
||||||
|
|
||||||
* defs.h (struct continuation_arg): Change type of field 'data'
|
* defs.h (struct continuation_arg): Change type of field 'data'
|
||||||
from PTR to void *.
|
from PTR to void *.
|
||||||
|
|
||||||
* event-loop.h: Eliminate uses of PTR, use 'void *' instead.
|
* event-loop.h: Eliminate uses of PTR, use 'void *' instead.
|
||||||
|
|
||||||
@ -204,13 +234,13 @@ Sat Mar 4 10:57:25 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||||||
Fri Mar 3 15:39:34 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
Fri Mar 3 15:39:34 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||||
|
|
||||||
* Makefile.in (CONFIG_CLEAN, CONFIG_ALL, LN_S): Defined by
|
* Makefile.in (CONFIG_CLEAN, CONFIG_ALL, LN_S): Defined by
|
||||||
configure.
|
configure.
|
||||||
(SUBDIR_MI_CLEAN, SUBDIR_GDBTK_CLEAN, SUBDIR_MI_ALL,
|
(SUBDIR_MI_CLEAN, SUBDIR_GDBTK_CLEAN, SUBDIR_MI_ALL,
|
||||||
SUBDIR_GDBTK_ALL): Define.
|
SUBDIR_GDBTK_ALL): Define.
|
||||||
(all-gdbtk, clean-gdbtk): New targets.
|
(all-gdbtk, clean-gdbtk): New targets.
|
||||||
(all): Add CONFIG_ALL as dependency.
|
(all): Add CONFIG_ALL as dependency.
|
||||||
(clean): Add CONFIG_CLEAN as dependency.
|
(clean): Add CONFIG_CLEAN as dependency.
|
||||||
|
|
||||||
* configure.in (CONFIG_ALL, CONFIG_CLEAN): Define.
|
* configure.in (CONFIG_ALL, CONFIG_CLEAN): Define.
|
||||||
(LN_S): Define. Delete GDBtk's link code.
|
(LN_S): Define. Delete GDBtk's link code.
|
||||||
|
|
||||||
@ -224,7 +254,7 @@ Fri Mar 3 13:12:34 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||||||
2000-03-02 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
|
2000-03-02 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
|
||||||
|
|
||||||
* config/alpha/alpha-linux.mh: Remove core-regset.o fron the
|
* config/alpha/alpha-linux.mh: Remove core-regset.o fron the
|
||||||
NATDEPFILES list.
|
NATDEPFILES list.
|
||||||
|
|
||||||
2000-03-02 Mark Kettenis <kettenis@gnu.org>
|
2000-03-02 Mark Kettenis <kettenis@gnu.org>
|
||||||
|
|
||||||
@ -250,25 +280,25 @@ Fri Mar 3 13:12:34 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||||||
|
|
||||||
Thu Mar 2 09:04:46 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
Thu Mar 2 09:04:46 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||||
|
|
||||||
* MAINTAINERS: Daniel Berlin is C++ maintainer.
|
* MAINTAINERS: Daniel Berlin is C++ maintainer.
|
||||||
|
|
||||||
Thu Mar 2 08:55:35 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
Thu Mar 2 08:55:35 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||||
|
|
||||||
* MAINTAINERS: Mark Kettenis is the x86 architcture maintainer and
|
* MAINTAINERS: Mark Kettenis is the x86 architcture maintainer and
|
||||||
a joint GNU/Linux/x86 maintainer. Nick Duffeck and Robert Lipe
|
a joint GNU/Linux/x86 maintainer. Nick Duffeck and Robert Lipe
|
||||||
share SCO/Unixware. Nick Duffek and Peter Schauer share
|
share SCO/Unixware. Nick Duffek and Peter Schauer share
|
||||||
Solaris/x86.
|
Solaris/x86.
|
||||||
|
|
||||||
Wed Mar 1 22:12:35 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
Wed Mar 1 22:12:35 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||||
|
|
||||||
From Wed 23 Feb 2000 Fernando Nasser <fnasser@redhat.com>:
|
From Wed 23 Feb 2000 Fernando Nasser <fnasser@redhat.com>:
|
||||||
* remote-sim.c (gdbsim_close): Call generic_mourn_inferior.
|
* remote-sim.c (gdbsim_close): Call generic_mourn_inferior.
|
||||||
* remote-rdi.c (arm_rdi_close): Ditto.
|
* remote-rdi.c (arm_rdi_close): Ditto.
|
||||||
|
|
||||||
Wed Mar 1 19:31:32 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
Wed Mar 1 19:31:32 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||||
|
|
||||||
* CONTRIBUTE (configure.in): Note that patches to configure are
|
* CONTRIBUTE (configure.in): Note that patches to configure are
|
||||||
not needed.
|
not needed.
|
||||||
|
|
||||||
2000-03-01 Mark Kettenis <kettenis@gnu.org>
|
2000-03-01 Mark Kettenis <kettenis@gnu.org>
|
||||||
|
|
||||||
@ -283,10 +313,10 @@ Wed Mar 1 00:49:06 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||||||
From 2000-02-28 Peter Schauer <pes@regent.e-technik.tu-muenchen.de>:
|
From 2000-02-28 Peter Schauer <pes@regent.e-technik.tu-muenchen.de>:
|
||||||
Make NEW_PROC_ABI interface functional on Solaris x86.
|
Make NEW_PROC_ABI interface functional on Solaris x86.
|
||||||
* sol-thread.c (ps_lgetLDT): Rewrite to use new
|
* sol-thread.c (ps_lgetLDT): Rewrite to use new
|
||||||
procfs_find_LDT_entry function from procfs.c, mostly copied from
|
procfs_find_LDT_entry function from procfs.c, mostly copied from
|
||||||
lin-thread.c.
|
lin-thread.c.
|
||||||
* inferior.h, procfs.c (procfs_get_pid_fd): Removed, no longer
|
* inferior.h, procfs.c (procfs_get_pid_fd): Removed, no longer
|
||||||
needed.
|
needed.
|
||||||
|
|
||||||
Wed Mar 1 00:34:55 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
Wed Mar 1 00:34:55 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||||
|
|
||||||
@ -296,11 +326,11 @@ Wed Mar 1 00:34:55 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||||||
Wed Mar 1 00:06:19 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
Wed Mar 1 00:06:19 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||||
|
|
||||||
From 1999-08-13 J.T. Conklin <jtc@redback.com>:
|
From 1999-08-13 J.T. Conklin <jtc@redback.com>:
|
||||||
* config/i386/tm-i386.h (FRAME_INIT_SAVED_REGS): Replace
|
* config/i386/tm-i386.h (FRAME_INIT_SAVED_REGS): Replace
|
||||||
FRAME_FIND_SAVED_REGS.
|
FRAME_FIND_SAVED_REGS.
|
||||||
(i386_frame_init_saved_regs): Replace i386_frame_find_saved_regs.
|
(i386_frame_init_saved_regs): Replace i386_frame_find_saved_regs.
|
||||||
* i386-tdep.c (i386_frame_init_saved_regs, i386_pop_frame):
|
* i386-tdep.c (i386_frame_init_saved_regs, i386_pop_frame):
|
||||||
Update.
|
Update.
|
||||||
|
|
||||||
Tue Feb 29 23:56:41 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
Tue Feb 29 23:56:41 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||||
|
|
||||||
@ -322,7 +352,7 @@ Tue Feb 29 18:47:58 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||||||
to the list of targets which return FP values in FP registers.
|
to the list of targets which return FP values in FP registers.
|
||||||
|
|
||||||
* i386-tdep.c (i386_extract_return_value): Add FIXME recommending
|
* i386-tdep.c (i386_extract_return_value): Add FIXME recommending
|
||||||
that this function be re-implemented using multi-arch.
|
that this function be re-implemented using multi-arch.
|
||||||
|
|
||||||
Tue Feb 29 18:40:08 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
Tue Feb 29 18:40:08 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||||
|
|
||||||
@ -345,24 +375,24 @@ Tue Feb 29 17:33:49 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||||||
|
|
||||||
From Wed, 23 Feb 2000 Fernando Nasser <fnasser@redhat.com>:
|
From Wed, 23 Feb 2000 Fernando Nasser <fnasser@redhat.com>:
|
||||||
* stack.c (backtrace_command_1), infrun.c (normal_stop): Check
|
* stack.c (backtrace_command_1), infrun.c (normal_stop): Check
|
||||||
that the target's stack was valid.
|
that the target's stack was valid.
|
||||||
|
|
||||||
Tue Feb 29 15:14:56 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
Tue Feb 29 15:14:56 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||||
|
|
||||||
From 2000-02-22 Stephane Carrez <stcarrez@worldnet.fr>:
|
From 2000-02-22 Stephane Carrez <stcarrez@worldnet.fr>:
|
||||||
* dwarf2read.c (read_address): Read 16-bits addresses.
|
* dwarf2read.c (read_address): Read 16-bits addresses.
|
||||||
|
|
||||||
2000-02-28 Scott Bambrough <scottb@netwinder.org>
|
2000-02-28 Scott Bambrough <scottb@netwinder.org>
|
||||||
|
|
||||||
* arm-linux-nat.c (fetch_nw_fpe_*):
|
* arm-linux-nat.c (fetch_nw_fpe_*):
|
||||||
Renamed to fetch_nwfpe_* to use the same naming convention
|
Renamed to fetch_nwfpe_* to use the same naming convention
|
||||||
as in the Linux kernel. Modified prototype to get rid of
|
as in the Linux kernel. Modified prototype to get rid of
|
||||||
unused parameters.
|
unused parameters.
|
||||||
(store_nw_fpe_*): Renamed to store_nwfpe_* to use the same
|
(store_nw_fpe_*): Renamed to store_nwfpe_* to use the same
|
||||||
naming convention as in the Linux kernel. Fixed calls to
|
naming convention as in the Linux kernel. Fixed calls to
|
||||||
fetch_nwfpe_*.
|
fetch_nwfpe_*.
|
||||||
(store_fpregs): Fixed calls to store_nwfpe_*. Removed
|
(store_fpregs): Fixed calls to store_nwfpe_*. Removed
|
||||||
unused variable.
|
unused variable.
|
||||||
|
|
||||||
Mon Feb 28 18:24:32 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
Mon Feb 28 18:24:32 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||||
|
|
||||||
@ -380,7 +410,7 @@ Mon Feb 28 13:34:54 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||||||
Mon Feb 28 10:58:45 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
Mon Feb 28 10:58:45 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||||
|
|
||||||
* MAINTAINERS: Mention mmalloc. Expand Host/Native and
|
* MAINTAINERS: Mention mmalloc. Expand Host/Native and
|
||||||
Target/Architecture maintainers descriptions.
|
Target/Architecture maintainers descriptions.
|
||||||
|
|
||||||
2000-02-26 Mark Kettenis <kettenis@gnu.org>
|
2000-02-26 Mark Kettenis <kettenis@gnu.org>
|
||||||
|
|
||||||
@ -435,8 +465,8 @@ Mon Feb 28 10:58:45 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||||||
Sat Feb 26 17:15:16 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
Sat Feb 26 17:15:16 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||||
|
|
||||||
* MAINTAINERS: Chris Faylor is responsible for all MS Windows
|
* MAINTAINERS: Chris Faylor is responsible for all MS Windows
|
||||||
systems. Note that Jim Blandy as maintainer for ``tracing
|
systems. Note that Jim Blandy as maintainer for ``tracing
|
||||||
bytecode stuff''
|
bytecode stuff''
|
||||||
|
|
||||||
2000-02-25 Fernando Nasser <fnasser@cygnus.com>
|
2000-02-25 Fernando Nasser <fnasser@cygnus.com>
|
||||||
|
|
||||||
@ -472,23 +502,23 @@ Wed Feb 23 23:27:48 2000 Andrew Cagney <cagney@behemoth.cygnus.com>
|
|||||||
Thu Feb 24 18:42:15 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
Thu Feb 24 18:42:15 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||||
|
|
||||||
* configure.in (CONFIG_INSTALL, CONFIG_UNINSTALL): Set to
|
* configure.in (CONFIG_INSTALL, CONFIG_UNINSTALL): Set to
|
||||||
$(SUBDIR_*_INSTALL) when so configured.
|
$(SUBDIR_*_INSTALL) when so configured.
|
||||||
* configure: Regenerate.
|
* configure: Regenerate.
|
||||||
|
|
||||||
* Makefile.in (CONFIG_INSTALL, CONFIG_UNINSTALL): Define using
|
* Makefile.in (CONFIG_INSTALL, CONFIG_UNINSTALL): Define using
|
||||||
configure.
|
configure.
|
||||||
(install-only): Add dependency on $(CONFIG_INSTALL). Delete code
|
(install-only): Add dependency on $(CONFIG_INSTALL). Delete code
|
||||||
installing GDBtk.
|
installing GDBtk.
|
||||||
(uninstall): Add dependency on $(CONFIG_UNINSTALL).
|
(uninstall): Add dependency on $(CONFIG_UNINSTALL).
|
||||||
(SUBDIR_MI_INSTALL, SUBDIR_MI_UNINSTALL, SUBDIR_GDBTK_UNINSTALL,
|
(SUBDIR_MI_INSTALL, SUBDIR_MI_UNINSTALL, SUBDIR_GDBTK_UNINSTALL,
|
||||||
SUBDIR_GDBTK_INSTALL): Define.
|
SUBDIR_GDBTK_INSTALL): Define.
|
||||||
(install-gdbtk): New target.
|
(install-gdbtk): New target.
|
||||||
|
|
||||||
Thu Feb 24 18:19:52 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
Thu Feb 24 18:19:52 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||||
|
|
||||||
* configure.in (SUBDIR_MI_CFLAGS): Fix typo, wrong brace.
|
* configure.in (SUBDIR_MI_CFLAGS): Fix typo, wrong brace.
|
||||||
* configure: Regenerate.
|
* configure: Regenerate.
|
||||||
|
|
||||||
2000-02-24 Christopher Faylor <cgf@cygnus.com>
|
2000-02-24 Christopher Faylor <cgf@cygnus.com>
|
||||||
|
|
||||||
* configure.tgt: Add arm, mips, sh wince targets.
|
* configure.tgt: Add arm, mips, sh wince targets.
|
||||||
@ -529,7 +559,7 @@ Wed Feb 23 19:01:45 EST 2000 Nicholas Duffek <nsd@cygnus.com>
|
|||||||
Wed Feb 23 12:58:46 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
Wed Feb 23 12:58:46 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||||
|
|
||||||
* gdbarch.sh (dis_asm_read_memory): Change LEN to unsigned long.
|
* gdbarch.sh (dis_asm_read_memory): Change LEN to unsigned long.
|
||||||
Match ../include/dis-asm.h change.
|
Match ../include/dis-asm.h change.
|
||||||
* gdbarch.h: Regenerate.
|
* gdbarch.h: Regenerate.
|
||||||
* corefile.c (dis_asm_read_memory): Update.
|
* corefile.c (dis_asm_read_memory): Update.
|
||||||
|
|
||||||
@ -538,38 +568,38 @@ Mon Feb 21 13:57:27 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||||||
* configure.in (CONFIG_INITS): Fix typo, was CONFIG_INIT.
|
* configure.in (CONFIG_INITS): Fix typo, was CONFIG_INIT.
|
||||||
(ENABLE_CFLAGS): Move initialization to start of file.
|
(ENABLE_CFLAGS): Move initialization to start of file.
|
||||||
(enable-gdbmi): Add new configure option --enable-gdbmi. When
|
(enable-gdbmi): Add new configure option --enable-gdbmi. When
|
||||||
selected and an ${srcdir}/mi directory is present enable MI
|
selected and an ${srcdir}/mi directory is present enable MI
|
||||||
interface.
|
interface.
|
||||||
|
|
||||||
* configure: Regenerate.
|
* configure: Regenerate.
|
||||||
|
|
||||||
* Makefile.in (SUBDIR_MI_OBS, SUBDIR_MI_SRCS, SUBDIR_MI_DEPS,
|
* Makefile.in (SUBDIR_MI_OBS, SUBDIR_MI_SRCS, SUBDIR_MI_DEPS,
|
||||||
SUBDIR_MI_INITS, SUBDIR_MI_LDFLAGS, SUBDIR_MI_CFLAGS): New macros.
|
SUBDIR_MI_INITS, SUBDIR_MI_LDFLAGS, SUBDIR_MI_CFLAGS): New macros.
|
||||||
(CONFIG_OBS, CONFIG_SRCS, CONFIG_DEPS, CONFIG_INITS,
|
(CONFIG_OBS, CONFIG_SRCS, CONFIG_DEPS, CONFIG_INITS,
|
||||||
CONFIG_LDFLAGS): New macros. Initialized by autoconf via
|
CONFIG_LDFLAGS): New macros. Initialized by autoconf via
|
||||||
@CONFIG...@.
|
@CONFIG...@.
|
||||||
(INTERNAL_LDFLAGS, CDEPS, LINTFILES, DEPFILES, SOURCES,
|
(INTERNAL_LDFLAGS, CDEPS, LINTFILES, DEPFILES, SOURCES,
|
||||||
INIT_FILES): Use $(CONFIG_...) instead of @CONFIG...@.
|
INIT_FILES): Use $(CONFIG_...) instead of @CONFIG...@.
|
||||||
|
|
||||||
* mi: New directory. MI interface to GDB.
|
* mi: New directory. MI interface to GDB.
|
||||||
|
|
||||||
* defs.h (interpreter_p): Declare when UI_OUT.
|
* defs.h (interpreter_p): Declare when UI_OUT.
|
||||||
* top.c (gdb_init): When interpreter_p, check that the interpreter
|
* top.c (gdb_init): When interpreter_p, check that the interpreter
|
||||||
was recognized by one of the linked in interpreters.
|
was recognized by one of the linked in interpreters.
|
||||||
* main.c (interpreter_p): Define.
|
* main.c (interpreter_p): Define.
|
||||||
(captured_main): When UI_OUT, check for ``-i <interpreter>'' option.
|
(captured_main): When UI_OUT, check for ``-i <interpreter>'' option.
|
||||||
* event-top.c (display_gdb_prompt): When interpreter_p, assume
|
* event-top.c (display_gdb_prompt): When interpreter_p, assume
|
||||||
interpreter displays prompt.
|
interpreter displays prompt.
|
||||||
|
|
||||||
* breakpoint.c (print_it_typical, watchpoint_check,
|
* breakpoint.c (print_it_typical, watchpoint_check,
|
||||||
print_one_breakpoint, mention): When MI include additional
|
print_one_breakpoint, mention): When MI include additional
|
||||||
target status information.
|
target status information.
|
||||||
* infrun.c (print_stop_reason, normal_stop): Ditto.
|
* infrun.c (print_stop_reason, normal_stop): Ditto.
|
||||||
|
|
||||||
2000-02-22 Jim Blandy <jimb@redhat.com>
|
2000-02-22 Jim Blandy <jimb@redhat.com>
|
||||||
|
|
||||||
* gdbarch.sh: Make the `default' field really default to zero, as
|
* gdbarch.sh: Make the `default' field really default to zero, as
|
||||||
documented.
|
documented.
|
||||||
|
|
||||||
Bring COERCE_FLOAT_TO_DOUBLE under gdbarch's control.
|
Bring COERCE_FLOAT_TO_DOUBLE under gdbarch's control.
|
||||||
* valops.c (COERCE_FLOAT_TO_DOUBLE): Rework definition to be
|
* valops.c (COERCE_FLOAT_TO_DOUBLE): Rework definition to be
|
||||||
@ -582,8 +612,8 @@ Mon Feb 21 13:57:27 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||||||
* gdbarch.sh (coerce_float_to_double): New entry, replacing macro.
|
* gdbarch.sh (coerce_float_to_double): New entry, replacing macro.
|
||||||
* gdbarch.c, gdbarch.h: Regenerated.
|
* gdbarch.c, gdbarch.h: Regenerated.
|
||||||
* tm-alpha.h, tm-fr30.h, tm-m32r.h, tm-mips.h, tm-hppa.h,
|
* tm-alpha.h, tm-fr30.h, tm-m32r.h, tm-mips.h, tm-hppa.h,
|
||||||
tm-rs6000.h, tm-sh.h, tm-sparc.h (COERCE_FLOAT_TO_DOUBLE): Change
|
tm-rs6000.h, tm-sh.h, tm-sparc.h (COERCE_FLOAT_TO_DOUBLE): Change
|
||||||
definitions.
|
definitions.
|
||||||
* mips-tdep.c (mips_coerce_float_to_double): Supply our own custom
|
* mips-tdep.c (mips_coerce_float_to_double): Supply our own custom
|
||||||
function here.
|
function here.
|
||||||
(mips_gdbarch_init): Install that as our coerce_float_to_double
|
(mips_gdbarch_init): Install that as our coerce_float_to_double
|
||||||
@ -636,8 +666,8 @@ Mon Feb 21 13:57:27 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||||||
From Philippe De Muyter <phdm@macqel.be>
|
From Philippe De Muyter <phdm@macqel.be>
|
||||||
|
|
||||||
* event-loop.c (handle_file_event): In case of poll, enable
|
* event-loop.c (handle_file_event): In case of poll, enable
|
||||||
printing of informational message if an error/exception is
|
printing of informational message if an error/exception is
|
||||||
detected on the file descriptor.
|
detected on the file descriptor.
|
||||||
|
|
||||||
2000-02-21 Jim Kingdon <kingdon@redhat.com>
|
2000-02-21 Jim Kingdon <kingdon@redhat.com>
|
||||||
|
|
||||||
@ -646,33 +676,33 @@ Mon Feb 21 13:57:27 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||||||
Mon Feb 21 12:50:57 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
Mon Feb 21 12:50:57 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||||
|
|
||||||
* buildsym.c: Include "language.h" and "expression.h" for
|
* buildsym.c: Include "language.h" and "expression.h" for
|
||||||
longest_local_hex_string_custom.
|
longest_local_hex_string_custom.
|
||||||
|
|
||||||
Mon Feb 21 11:17:18 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
Mon Feb 21 11:17:18 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||||
|
|
||||||
* gdbarch.sh: Include <gdb_wait.h> instead of <wait.h>.
|
* gdbarch.sh: Include <gdb_wait.h> instead of <wait.h>.
|
||||||
* gdbarch.c: Already updated by Wed Feb 9 18:59:16 2000 Andrew
|
* gdbarch.c: Already updated by Wed Feb 9 18:59:16 2000 Andrew
|
||||||
Cagney <cagney@b1.cygnus.com>.
|
Cagney <cagney@b1.cygnus.com>.
|
||||||
|
|
||||||
Mon Feb 21 11:03:01 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
Mon Feb 21 11:03:01 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||||
|
|
||||||
* MAINTAINERS: Update: IA-64 - Kevin Buettner; ARM - Fernando
|
* MAINTAINERS: Update: IA-64 - Kevin Buettner; ARM - Fernando
|
||||||
nasser, Jim Ingham and Scott Bambrough; GNU/Linux ARM - Scott
|
nasser, Jim Ingham and Scott Bambrough; GNU/Linux ARM - Scott
|
||||||
Bambrough; event loop - Elena Zannoni; SDS and RDI/APD protocol -
|
Bambrough; event loop - Elena Zannoni; SDS and RDI/APD protocol -
|
||||||
to Fernando Nasser and Jim Ingham; KOD - Fernando Nasser; MI -
|
to Fernando Nasser and Jim Ingham; KOD - Fernando Nasser; MI -
|
||||||
Andrew Cagney, Elena Zannoni and Fernando Nasser; Web pages - Jim
|
Andrew Cagney, Elena Zannoni and Fernando Nasser; Web pages - Jim
|
||||||
Kingdon.
|
Kingdon.
|
||||||
* MAINTAINERS: Add Nick Clifton to write after approval list.
|
* MAINTAINERS: Add Nick Clifton to write after approval list.
|
||||||
|
|
||||||
Mon Feb 21 10:30:39 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
Mon Feb 21 10:30:39 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||||
|
|
||||||
* MAINTAINERS: Add note on multiple maintainers.
|
* MAINTAINERS: Add note on multiple maintainers.
|
||||||
|
|
||||||
2000-02-19 Philippe De Muyter <phdm@macqel.be>
|
2000-02-19 Philippe De Muyter <phdm@macqel.be>
|
||||||
|
|
||||||
* cli-out.c (cli_table_header): Type of parameter `alignment' is
|
* cli-out.c (cli_table_header): Type of parameter `alignment' is
|
||||||
`enum ui_align', not `int'.
|
`enum ui_align', not `int'.
|
||||||
(cli_field_string, cli_field_skip): Likewise.
|
(cli_field_string, cli_field_skip): Likewise.
|
||||||
|
|
||||||
2000-02-18 Jim Blandy <jimb@redhat.com>
|
2000-02-18 Jim Blandy <jimb@redhat.com>
|
||||||
|
|
||||||
@ -685,8 +715,8 @@ Mon Feb 21 10:30:39 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||||||
2000-02-18 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
|
2000-02-18 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
|
||||||
|
|
||||||
* remote.c (remote_async_detach): Use target_mourn_inferior(), to
|
* remote.c (remote_async_detach): Use target_mourn_inferior(), to
|
||||||
make sure that all is cleaned up after we disconnect from the
|
make sure that all is cleaned up after we disconnect from the
|
||||||
target.
|
target.
|
||||||
(remote_detach): Ditto.
|
(remote_detach): Ditto.
|
||||||
|
|
||||||
2000-02-17 Fernando Nasser <fnasser@totem.to.cygnus.com>
|
2000-02-17 Fernando Nasser <fnasser@totem.to.cygnus.com>
|
||||||
@ -742,7 +772,7 @@ Mon Feb 21 10:30:39 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||||||
Wed Feb 16 19:00:02 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
Wed Feb 16 19:00:02 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||||
|
|
||||||
From 2000-01-26 Rodney Brown <RodneyBrown@pmsc.com>:
|
From 2000-01-26 Rodney Brown <RodneyBrown@pmsc.com>:
|
||||||
* procfs.c: Define MERGEPID if not defined. For osf4.0e.
|
* procfs.c: Define MERGEPID if not defined. For osf4.0e.
|
||||||
|
|
||||||
2000-02-15 Jason Molenda (jsm@bugshack.cygnus.com)
|
2000-02-15 Jason Molenda (jsm@bugshack.cygnus.com)
|
||||||
|
|
||||||
@ -756,11 +786,11 @@ Wed Feb 16 19:00:02 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||||||
to correct value for generic dummy frames. When using
|
to correct value for generic dummy frames. When using
|
||||||
generic dummy frames, don't attempt to write TOC value or
|
generic dummy frames, don't attempt to write TOC value or
|
||||||
function to call into the call dummy.
|
function to call into the call dummy.
|
||||||
(rs6000_push_arguments): Adapt USE_GENERIC_DUMMY_FRAMES
|
(rs6000_push_arguments): Adapt USE_GENERIC_DUMMY_FRAMES
|
||||||
code to also handle the PowerOpen ABI.
|
code to also handle the PowerOpen ABI.
|
||||||
(ppc_push_return_address): Enable for all ports.
|
(ppc_push_return_address): Enable for all ports.
|
||||||
* config/powerpc/tm-ppc-aix.h (USE_GENERIC_DUMMY_FRAMES,
|
* config/powerpc/tm-ppc-aix.h (USE_GENERIC_DUMMY_FRAMES,
|
||||||
PUSH_DUMMY_FRAME, PUSH_RETURN_ADDRESS, GET_SAVED_REGISTER,
|
PUSH_DUMMY_FRAME, PUSH_RETURN_ADDRESS, GET_SAVED_REGISTER,
|
||||||
CALL_DUMMY_BREAKPOINT_OFFSET, CALL_DUMMY_LOCATION,
|
CALL_DUMMY_BREAKPOINT_OFFSET, CALL_DUMMY_LOCATION,
|
||||||
CALL_DUMMY_ADDRESS, CALL_DUMMY_START_OFFSET): Override defaults
|
CALL_DUMMY_ADDRESS, CALL_DUMMY_START_OFFSET): Override defaults
|
||||||
provided by generic RS6000 definitions so that call dummies
|
provided by generic RS6000 definitions so that call dummies
|
||||||
@ -783,7 +813,7 @@ Wed Feb 16 19:00:02 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||||||
2000-02-15 Jesper Skov <jskov@cygnus.co.uk>
|
2000-02-15 Jesper Skov <jskov@cygnus.co.uk>
|
||||||
|
|
||||||
Patch applied by Kevin Buettner <kevinb@redhat.com>
|
Patch applied by Kevin Buettner <kevinb@redhat.com>
|
||||||
|
|
||||||
* rs6000-tdep.c (skip_prologue): skip copying of argument
|
* rs6000-tdep.c (skip_prologue): skip copying of argument
|
||||||
registers to local variable registers.
|
registers to local variable registers.
|
||||||
|
|
||||||
@ -822,9 +852,9 @@ Mon Feb 14 15:20:26 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||||||
|
|
||||||
* config/i386/nbsd.mt (GDBSERVER_DEPFILES): Add low-nbsd.o
|
* config/i386/nbsd.mt (GDBSERVER_DEPFILES): Add low-nbsd.o
|
||||||
* configure.tgt (i[3456]86-*-netbsd*): add gdbserver to
|
* configure.tgt (i[3456]86-*-netbsd*): add gdbserver to
|
||||||
configdirs.
|
configdirs.
|
||||||
* gdbserver/low-nbsd.c: New file.
|
* gdbserver/low-nbsd.c: New file.
|
||||||
|
|
||||||
* gdbserver/Makefile.in: convert to autoconf.
|
* gdbserver/Makefile.in: convert to autoconf.
|
||||||
* gdbserver/configure.in: likewise.
|
* gdbserver/configure.in: likewise.
|
||||||
* gdbserver/configure: generate.
|
* gdbserver/configure: generate.
|
||||||
@ -836,9 +866,9 @@ Sun Feb 13 11:21:00 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||||||
Sun Feb 13 10:34:48 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
Sun Feb 13 10:34:48 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||||
|
|
||||||
* MAINTAINERS: Add Eli Zaretskii to djgpp maintiners. Add Kevin
|
* MAINTAINERS: Add Eli Zaretskii to djgpp maintiners. Add Kevin
|
||||||
Buettner to powerpc maintainers. Make Kevin Buettner the
|
Buettner to powerpc maintainers. Make Kevin Buettner the
|
||||||
GNU/LINUX PPC native maintainer. Add J.T. Conklin, Jim Kingdon
|
GNU/LINUX PPC native maintainer. Add J.T. Conklin, Jim Kingdon
|
||||||
and Jason Molenda to write after aproval list.
|
and Jason Molenda to write after aproval list.
|
||||||
|
|
||||||
Sun Feb 13 10:18:44 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
Sun Feb 13 10:18:44 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||||
|
|
||||||
@ -880,28 +910,28 @@ Sat Feb 12 01:08:21 EST 2000 Nicholas Duffek <nsd@cygnus.com>
|
|||||||
|
|
||||||
2000-02-09 Mark Kettenis <kettenis@gnu.org>
|
2000-02-09 Mark Kettenis <kettenis@gnu.org>
|
||||||
|
|
||||||
* linux-thread.c: Include defs.h before gdb_wait.h.
|
* linux-thread.c: Include defs.h before gdb_wait.h.
|
||||||
|
|
||||||
Wed Feb 9 18:59:16 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
Wed Feb 9 18:59:16 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||||
|
|
||||||
* Makefile.in (wait_h): Delete macro. Update all dependencies
|
* Makefile.in (wait_h): Delete macro. Update all dependencies
|
||||||
specifying gdb_wait.h instead.
|
specifying gdb_wait.h instead.
|
||||||
|
|
||||||
* ser-unix.c, ser-pipe.c, remote.c, remote-udi.c, remote-sds.c,
|
* ser-unix.c, ser-pipe.c, remote.c, remote-udi.c, remote-sds.c,
|
||||||
remote-os9k.c, remote-es.c, remote-rdp.c, remote-vx960.c,
|
remote-os9k.c, remote-es.c, remote-rdp.c, remote-vx960.c,
|
||||||
remote-vx.c, remote-st.c, remote-nindy.c, remote-mm.c,
|
remote-vx.c, remote-st.c, remote-nindy.c, remote-mm.c,
|
||||||
convex-xdep.c, convex-tdep.c, target.c, win32-nat.c, standalone.c,
|
convex-xdep.c, convex-tdep.c, target.c, win32-nat.c, standalone.c,
|
||||||
remote-vxmips.c, remote-vxsparc.c, remote-vx68.c, remote-vx29k.c,
|
remote-vxmips.c, remote-vxsparc.c, remote-vx68.c, remote-vx29k.c,
|
||||||
remote-sim.c, remote-rdi.c, remote-mips.c, remote-eb.c,
|
remote-sim.c, remote-rdi.c, remote-mips.c, remote-eb.c,
|
||||||
remote-e7000.c, remote-bug.c, remote-array.c, remote-adapt.c,
|
remote-e7000.c, remote-bug.c, remote-array.c, remote-adapt.c,
|
||||||
ppc-bdm.c, ocd.c, monitor.c, m3-nat.c, linux-thread.c,
|
ppc-bdm.c, ocd.c, monitor.c, m3-nat.c, linux-thread.c,
|
||||||
infttrace.c, lin-thread.c, infptrace.c, gnu-nat.c, gdbarch.c,
|
infttrace.c, lin-thread.c, infptrace.c, gnu-nat.c, gdbarch.c,
|
||||||
fork-child.c, command.c: Include "gdb_wait.h" instead of <wait.h>
|
fork-child.c, command.c: Include "gdb_wait.h" instead of <wait.h>
|
||||||
or <sys/wait.h>.
|
or <sys/wait.h>.
|
||||||
* nindy-share/nindy.c, nindy-share/Onindy.c: Ditto.
|
* nindy-share/nindy.c, nindy-share/Onindy.c: Ditto.
|
||||||
|
|
||||||
* gdb_wait.h: New file. Based on ../include/wait.h. Include
|
* gdb_wait.h: New file. Based on ../include/wait.h. Include
|
||||||
<sys/wait.h> or <wait.h> and then define any missing WIF macros.
|
<sys/wait.h> or <wait.h> and then define any missing WIF macros.
|
||||||
|
|
||||||
Wed Feb 9 01:14:54 2000 Andrew Cagney <cagney@amy.cygnus.com>
|
Wed Feb 9 01:14:54 2000 Andrew Cagney <cagney@amy.cygnus.com>
|
||||||
|
|
||||||
@ -912,15 +942,15 @@ Wed Feb 9 01:14:54 2000 Andrew Cagney <cagney@amy.cygnus.com>
|
|||||||
|
|
||||||
1999-08-23 J.T. Conklin <jtc@redback.com>
|
1999-08-23 J.T. Conklin <jtc@redback.com>
|
||||||
|
|
||||||
* top.c (remote_timeout): Change default to 2. Add comment
|
* top.c (remote_timeout): Change default to 2. Add comment
|
||||||
explaining history of changes to the default value.
|
explaining history of changes to the default value.
|
||||||
* remote.c (_initialize_remote): Remove code that adds set/
|
* remote.c (_initialize_remote): Remove code that adds set/
|
||||||
show remotetimeout, as that's also done in top.c
|
show remotetimeout, as that's also done in top.c
|
||||||
|
|
||||||
1999-10-18 J.T. Conklin <jtc@redback.com>
|
1999-10-18 J.T. Conklin <jtc@redback.com>
|
||||||
|
|
||||||
* m32r-stub.c, sparcl-stub.c, sparclet-stub.c (handle_exception):
|
* m32r-stub.c, sparcl-stub.c, sparclet-stub.c (handle_exception):
|
||||||
Return E01 instead of P01 when 'P' command fails.
|
Return E01 instead of P01 when 'P' command fails.
|
||||||
|
|
||||||
2000-02-05 J.T. Conklin <jtc@redback.com>
|
2000-02-05 J.T. Conklin <jtc@redback.com>
|
||||||
|
|
||||||
@ -965,13 +995,13 @@ Wed Feb 9 01:14:54 2000 Andrew Cagney <cagney@amy.cygnus.com>
|
|||||||
2000-02-04 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
|
2000-02-04 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
|
||||||
|
|
||||||
* infrun.c (resume): Make just one call to target_resume(), instead
|
* infrun.c (resume): Make just one call to target_resume(), instead
|
||||||
of four: set up correct parameters in all the cases ahead of time,
|
of four: set up correct parameters in all the cases ahead of time,
|
||||||
and do call at the end.
|
and do call at the end.
|
||||||
|
|
||||||
2000-02-04 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
|
2000-02-04 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
|
||||||
|
|
||||||
* config/powerpc/tm-ppc-eabi.h: Define
|
* config/powerpc/tm-ppc-eabi.h: Define
|
||||||
SOFUN_ADDRESS_MAYBE_MISSING.
|
SOFUN_ADDRESS_MAYBE_MISSING.
|
||||||
|
|
||||||
2000-02-04 Fernando Nasser <fnasser@totem.to.cygnus.com>
|
2000-02-04 Fernando Nasser <fnasser@totem.to.cygnus.com>
|
||||||
|
|
||||||
@ -985,16 +1015,16 @@ Fri Feb 4 22:42:36 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||||||
(links): Link srcdir/gdbtk/library to gdbtcl2.
|
(links): Link srcdir/gdbtk/library to gdbtcl2.
|
||||||
* gdbtcl2: Moved to gdbtk/library.
|
* gdbtcl2: Moved to gdbtk/library.
|
||||||
ChangeLog-gdbtk, gdbtk-cmds.c, gdbtk-hooks.c, gdbtk-variable.c,
|
ChangeLog-gdbtk, gdbtk-cmds.c, gdbtk-hooks.c, gdbtk-variable.c,
|
||||||
gdbtk-varobj.c, gdbtk-wrapper.c, gdbtk-wrapper.h, gdbtk.c,
|
gdbtk-varobj.c, gdbtk-wrapper.c, gdbtk-wrapper.h, gdbtk.c,
|
||||||
gdbtk.h: Moved to gdbtk/generic.
|
gdbtk.h: Moved to gdbtk/generic.
|
||||||
|
|
||||||
2000-02-03 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
|
2000-02-03 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
|
||||||
|
|
||||||
* printcmd.c (build_address_symbolic): New function. Returns all
|
* printcmd.c (build_address_symbolic): New function. Returns all
|
||||||
the parts that are necessary to print an address in a symbolic
|
the parts that are necessary to print an address in a symbolic
|
||||||
form.
|
form.
|
||||||
(print_address_symbolic): Split into a printing part and an
|
(print_address_symbolic): Split into a printing part and an
|
||||||
information building part, build_address_symbolic().
|
information building part, build_address_symbolic().
|
||||||
|
|
||||||
* defs.h (build_address_symbolic): Export.
|
* defs.h (build_address_symbolic): Export.
|
||||||
|
|
||||||
@ -1016,39 +1046,39 @@ Fri Feb 4 22:42:36 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||||||
2000-02-01 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
|
2000-02-01 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
|
||||||
|
|
||||||
* remote.c (getpkt_sane): New function. It is the old getpkt(),
|
* remote.c (getpkt_sane): New function. It is the old getpkt(),
|
||||||
which now returns a timeout indication.
|
which now returns a timeout indication.
|
||||||
(getpkt): New function. Wrapper for getpkt_sane(), so that return
|
(getpkt): New function. Wrapper for getpkt_sane(), so that return
|
||||||
value can still be ignored.
|
value can still be ignored.
|
||||||
|
|
||||||
Tue Feb 1 18:47:31 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
Tue Feb 1 18:47:31 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||||
|
|
||||||
* top.c (print_gdb_version): Print ``UI_OUT'' when configured with
|
* top.c (print_gdb_version): Print ``UI_OUT'' when configured with
|
||||||
UI_OUT.
|
UI_OUT.
|
||||||
|
|
||||||
Tue Feb 1 00:17:12 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
Tue Feb 1 00:17:12 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||||
|
|
||||||
* ui-file.c, ui-file.h: Rename gdb-file.h, gdb-file.c. Rename
|
* ui-file.c, ui-file.h: Rename gdb-file.h, gdb-file.c. Rename
|
||||||
``struct gdb_file'' to ``struct ui_file''. Delete typedef
|
``struct gdb_file'' to ``struct ui_file''. Delete typedef
|
||||||
GDB_FILE.
|
GDB_FILE.
|
||||||
|
|
||||||
* Makefile.in: Update.
|
* Makefile.in: Update.
|
||||||
|
|
||||||
* ax-gdb.c, ax-general.c, ax.h, buildsym.c, c-lang.c, c-lang.h,
|
* ax-gdb.c, ax-general.c, ax.h, buildsym.c, c-lang.c, c-lang.h,
|
||||||
c-typeprint.c, c-valprint.c, ch-lang.c, ch-lang.h, ch-typeprint.c,
|
c-typeprint.c, c-valprint.c, ch-lang.c, ch-lang.h, ch-typeprint.c,
|
||||||
ch-valprint.c, command.c, command.h, convex-tdep.c, corefile.c,
|
ch-valprint.c, command.c, command.h, convex-tdep.c, corefile.c,
|
||||||
cp-valprint.c, d10v-tdep.c, d30v-tdep.c, defs.h, expprint.c,
|
cp-valprint.c, d10v-tdep.c, d30v-tdep.c, defs.h, expprint.c,
|
||||||
expression.h, f-lang.c, f-lang.h, f-typeprint.c, f-valprint.c,
|
expression.h, f-lang.c, f-lang.h, f-typeprint.c, f-valprint.c,
|
||||||
frame.h, gdb-events.sh, gdb-file.c, gdb-file.h, gdbcmd.h,
|
frame.h, gdb-events.sh, gdb-file.c, gdb-file.h, gdbcmd.h,
|
||||||
gdbtypes.h, hppa-tdep.c, jv-lang.c, jv-lang.h, jv-typeprint.c,
|
gdbtypes.h, hppa-tdep.c, jv-lang.c, jv-lang.h, jv-typeprint.c,
|
||||||
jv-valprint.c, language.c, language.h, m2-lang.c, m2-lang.h,
|
jv-valprint.c, language.c, language.h, m2-lang.c, m2-lang.h,
|
||||||
m2-typeprint.c, m2-valprint.c, m3-nat.c, main.c, monitor.c,
|
m2-typeprint.c, m2-valprint.c, m3-nat.c, main.c, monitor.c,
|
||||||
printcmd.c, pyr-tdep.c, remote-mips.c, remote-sim.c, remote-udi.c,
|
printcmd.c, pyr-tdep.c, remote-mips.c, remote-sim.c, remote-udi.c,
|
||||||
remote.c, scm-lang.c, scm-lang.h, scm-valprint.c, ser-e7kpc.c,
|
remote.c, scm-lang.c, scm-lang.h, scm-valprint.c, ser-e7kpc.c,
|
||||||
ser-go32.c, ser-mac.c, ser-ocd.c, ser-unix.c, ser-unix.h,
|
ser-go32.c, ser-mac.c, ser-ocd.c, ser-unix.c, ser-unix.h,
|
||||||
serial.c, serial.h, stack.c, symfile.c, symmisc.c, tahoe-tdep.c,
|
serial.c, serial.h, stack.c, symfile.c, symmisc.c, tahoe-tdep.c,
|
||||||
target.c, target.h, top.c, top.h, typeprint.c, typeprint.h,
|
target.c, target.h, top.c, top.h, typeprint.c, typeprint.h,
|
||||||
utils.c, v850ice.c, valprint.c, valprint.h, value.h,
|
utils.c, v850ice.c, valprint.c, valprint.h, value.h,
|
||||||
config/pa/tm-hppa.h: Update.
|
config/pa/tm-hppa.h: Update.
|
||||||
* cli-out.c, cli-out.h, ui-out.c, ui-out.h, varobj.c: Update.
|
* cli-out.c, cli-out.h, ui-out.c, ui-out.h, varobj.c: Update.
|
||||||
|
|
||||||
2000-01-31 Jason Molenda (jsm@bugshack.cygnus.com)
|
2000-01-31 Jason Molenda (jsm@bugshack.cygnus.com)
|
||||||
@ -1068,30 +1098,30 @@ Mon Jan 31 17:14:52 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||||||
* top.c (fputs_unfiltered_hook): Moved to tui/tui-file.c.
|
* top.c (fputs_unfiltered_hook): Moved to tui/tui-file.c.
|
||||||
|
|
||||||
* main.c (captured_main): Only use the legacy tui_file code when
|
* main.c (captured_main): Only use the legacy tui_file code when
|
||||||
linking in older code such as the TUI.
|
linking in older code such as the TUI.
|
||||||
|
|
||||||
* gdb-file.h, gdb-file.c: New files.
|
* gdb-file.h, gdb-file.c: New files.
|
||||||
* utils.c, defs.h (struct gdb_file, gdb_file_new, gdb_file_delete,
|
* utils.c, defs.h (struct gdb_file, gdb_file_new, gdb_file_delete,
|
||||||
null_file_isatty, null_file_rewind, null_file_put,
|
null_file_isatty, null_file_rewind, null_file_put,
|
||||||
null_file_flush, null_file_write, null_file_fputs,
|
null_file_flush, null_file_write, null_file_fputs,
|
||||||
null_file_delete, gdb_file_data, gdb_flush, gdb_file_isatty,
|
null_file_delete, gdb_file_data, gdb_flush, gdb_file_isatty,
|
||||||
gdb_file_rewind, gdb_file_put, gdb_file_write, fputs_unfiltered,
|
gdb_file_rewind, gdb_file_put, gdb_file_write, fputs_unfiltered,
|
||||||
set_gdb_file_flush, set_gdb_file_isatty, set_gdb_file_rewind,
|
set_gdb_file_flush, set_gdb_file_isatty, set_gdb_file_rewind,
|
||||||
set_gdb_file_put, set_gdb_file_write, set_gdb_file_fputs,
|
set_gdb_file_put, set_gdb_file_write, set_gdb_file_fputs,
|
||||||
set_gdb_file_data, struct accumulated_gdb_file,
|
set_gdb_file_data, struct accumulated_gdb_file,
|
||||||
do_gdb_file_xstrdup, gdb_file_xstrdup, struct mem_file):
|
do_gdb_file_xstrdup, gdb_file_xstrdup, struct mem_file):
|
||||||
mem_file_new, mem_file_delete, mem_fileopen, mem_file_rewind,
|
mem_file_new, mem_file_delete, mem_fileopen, mem_file_rewind,
|
||||||
mem_file_put, mem_file_write, struct stdio_file): stdio_file_new,
|
mem_file_put, mem_file_write, struct stdio_file): stdio_file_new,
|
||||||
stdio_file_delete, stdio_file_flush, stdio_file_write,
|
stdio_file_delete, stdio_file_flush, stdio_file_write,
|
||||||
stdio_file_fputs, stdio_file_isatty, stdio_fileopen, gdb_fopen):
|
stdio_file_fputs, stdio_file_isatty, stdio_fileopen, gdb_fopen):
|
||||||
Moved to gdb-file.h and gdb-file.c.
|
Moved to gdb-file.h and gdb-file.c.
|
||||||
* utils.c (enum streamtype, struct tui_stream, tui_file_new,
|
* utils.c (enum streamtype, struct tui_stream, tui_file_new,
|
||||||
tui_file_delete, tui_fileopen, tui_sfileopen, tui_file_isatty,
|
tui_file_delete, tui_fileopen, tui_sfileopen, tui_file_isatty,
|
||||||
tui_file_rewind, tui_file_put, tui_file_fputs,
|
tui_file_rewind, tui_file_put, tui_file_fputs,
|
||||||
tui_file_get_strbuf, tui_file_adjust_strbuf, tui_file_flush,
|
tui_file_get_strbuf, tui_file_adjust_strbuf, tui_file_flush,
|
||||||
fputs_unfiltered_hook):
|
fputs_unfiltered_hook):
|
||||||
Moved to tui/tui-file.c and tui/tui-file.h.
|
Moved to tui/tui-file.c and tui/tui-file.h.
|
||||||
|
|
||||||
* Makefile.in (COMMON_OBS): Add gdb-file.o, tui-file.o.
|
* Makefile.in (COMMON_OBS): Add gdb-file.o, tui-file.o.
|
||||||
(tui-file.o, gdb-file.o): Add dependencies.
|
(tui-file.o, gdb-file.o): Add dependencies.
|
||||||
(corefile.o, main.o, utils.o, simmisc.o): Update dependencies.
|
(corefile.o, main.o, utils.o, simmisc.o): Update dependencies.
|
||||||
@ -1120,18 +1150,18 @@ Mon Jan 31 17:14:52 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||||||
2000-01-27 Jim Blandy <jimb@cygnus.com>
|
2000-01-27 Jim Blandy <jimb@cygnus.com>
|
||||||
|
|
||||||
* symtab.c (decode_line_1): Don't let commas that are within
|
* symtab.c (decode_line_1): Don't let commas that are within
|
||||||
quotes or parenthesis terminate the line spec. Don't use pp when
|
quotes or parenthesis terminate the line spec. Don't use pp when
|
||||||
removing the final double quote of a double-quoted string. Don't
|
removing the final double quote of a double-quoted string. Don't
|
||||||
forget to skip the opening double quote. I have no clue whether
|
forget to skip the opening double quote. I have no clue whether
|
||||||
this change is correct; probably we've just moved this function
|
this change is correct; probably we've just moved this function
|
||||||
from one buggy place to another buggy place, and never came within
|
from one buggy place to another buggy place, and never came within
|
||||||
an outhouse whiff of correctness.
|
an outhouse whiff of correctness.
|
||||||
(find_toplevel_char): New function.
|
(find_toplevel_char): New function.
|
||||||
|
|
||||||
2000-01-27 Fernando Nasser <fnasser@totem.to.cygnus.com>
|
2000-01-27 Fernando Nasser <fnasser@totem.to.cygnus.com>
|
||||||
|
|
||||||
* arm-tdep.c (arm_push_arguments): Set the thumb mode bit when
|
* arm-tdep.c (arm_push_arguments): Set the thumb mode bit when
|
||||||
passing the pointer to a thumb function as an argument.
|
passing the pointer to a thumb function as an argument.
|
||||||
|
|
||||||
2000-01-27 Fernando Nasser <fnasser@totem.to.cygnus.com>
|
2000-01-27 Fernando Nasser <fnasser@totem.to.cygnus.com>
|
||||||
|
|
||||||
@ -1203,22 +1233,22 @@ Mon Jan 31 17:14:52 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||||||
* proc-why.c: New file. Add include of proc-utils.h.
|
* proc-why.c: New file. Add include of proc-utils.h.
|
||||||
|
|
||||||
* procfs.c: Add includes of gdbthread.h, sys/wait.h, signal.h,
|
* procfs.c: Add includes of gdbthread.h, sys/wait.h, signal.h,
|
||||||
ctype.h, proc-utils.h.
|
ctype.h, proc-utils.h.
|
||||||
(find_procinfo_or_die): Add braces to avoid ambiguous else clause.
|
(find_procinfo_or_die): Add braces to avoid ambiguous else clause.
|
||||||
(open_procinfo_files): Conditionalize local variable tmp, to avoid
|
(open_procinfo_files): Conditionalize local variable tmp, to avoid
|
||||||
compiler warnings.
|
compiler warnings.
|
||||||
(proc_iterate_over_mappings): Conditionalize local vars mapfd and
|
(proc_iterate_over_mappings): Conditionalize local vars mapfd and
|
||||||
pathname.
|
pathname.
|
||||||
(procfs_wait): Adjust format in some printf_filetered calls to
|
(procfs_wait): Adjust format in some printf_filetered calls to
|
||||||
avoid compiler warnings.
|
avoid compiler warnings.
|
||||||
(make_signal_thread_runnable): Ifdef 0. The calls to this function
|
(make_signal_thread_runnable): Ifdef 0. The calls to this function
|
||||||
are also ifdef'd 0 .
|
are also ifdef'd 0 .
|
||||||
(procfs_resume): Add parentheses around '&&' operation.
|
(procfs_resume): Add parentheses around '&&' operation.
|
||||||
(procfs_set_exec_trap): Remove unused variable.
|
(procfs_set_exec_trap): Remove unused variable.
|
||||||
(info_proc_cmd): Add braces to avoid ambiguous else clause.
|
(info_proc_cmd): Add braces to avoid ambiguous else clause.
|
||||||
|
|
||||||
* Makefile.in (procfs.o, proc-api.o, proc-events.o, proc-flags.o,
|
* Makefile.in (procfs.o, proc-api.o, proc-events.o, proc-flags.o,
|
||||||
proc-why.o): Update dependencies.
|
proc-why.o): Update dependencies.
|
||||||
|
|
||||||
* config/sparc/sun4sol2.mh (NATDEPFILES): Change proc_*.o files to
|
* config/sparc/sun4sol2.mh (NATDEPFILES): Change proc_*.o files to
|
||||||
proc-*.o.
|
proc-*.o.
|
||||||
@ -1232,30 +1262,30 @@ Mon Jan 31 17:14:52 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
|||||||
2000-01-17 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
|
2000-01-17 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
|
||||||
|
|
||||||
* stack.c (print_frame_info_base): Break up into the frame info
|
* stack.c (print_frame_info_base): Break up into the frame info
|
||||||
(location) printing part and the rest (source line printing).
|
(location) printing part and the rest (source line printing).
|
||||||
(print_frame): New function. Take care of printing the location
|
(print_frame): New function. Take care of printing the location
|
||||||
information.
|
information.
|
||||||
Update copyright.
|
Update copyright.
|
||||||
|
|
||||||
* infrun.c (normal_stop): Use enum values rather than integers for the
|
* infrun.c (normal_stop): Use enum values rather than integers for the
|
||||||
source_flag to be passed to show_and_print_stack_frame().
|
source_flag to be passed to show_and_print_stack_frame().
|
||||||
Update copyright.
|
|
||||||
|
|
||||||
* frame.h (print_what): New enum for 'source' argument to
|
|
||||||
print_frame_info_base(). Use this instead of obscure numbers.
|
|
||||||
Update copyright.
|
Update copyright.
|
||||||
|
|
||||||
|
* frame.h (print_what): New enum for 'source' argument to
|
||||||
|
print_frame_info_base(). Use this instead of obscure numbers.
|
||||||
|
Update copyright.
|
||||||
|
|
||||||
Sun Jan 16 17:58:00 2000 David Taylor <taylor@texas.cygnus.com>
|
Sun Jan 16 17:58:00 2000 David Taylor <taylor@texas.cygnus.com>
|
||||||
|
|
||||||
* event-top.c (stdin_event_handler): call quit_command rather than
|
* event-top.c (stdin_event_handler): call quit_command rather than
|
||||||
exit -- run cleanups, give target code a chance to say goodbye to
|
exit -- run cleanups, give target code a chance to say goodbye to
|
||||||
the target. Fixes bug where the inferior processes were left
|
the target. Fixes bug where the inferior processes were left
|
||||||
around on Solaris (and probably elsewhere) by the testsuite.
|
around on Solaris (and probably elsewhere) by the testsuite.
|
||||||
|
|
||||||
2000-01-14 Mark Salter <msalter@cygnus.com>
|
2000-01-14 Mark Salter <msalter@cygnus.com>
|
||||||
|
|
||||||
* v850-tdep.c (v850_target_architecture_hook): Setup correct
|
* v850-tdep.c (v850_target_architecture_hook): Setup correct
|
||||||
machine id for disassembly.
|
machine id for disassembly.
|
||||||
|
|
||||||
2000-01-13 Jim Blandy <jimb@cygnus.com>
|
2000-01-13 Jim Blandy <jimb@cygnus.com>
|
||||||
|
|
||||||
@ -1296,7 +1326,7 @@ Thu Jan 13 23:34:17 EST 2000 Nicholas Duffek <nsd@cygnus.com>
|
|||||||
2000-01-12 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
|
2000-01-12 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
|
||||||
|
|
||||||
* thread.c (do_captured_thread_select): New function. Switch
|
* thread.c (do_captured_thread_select): New function. Switch
|
||||||
current thread, safely from within catch_errors().
|
current thread, safely from within catch_errors().
|
||||||
(gdb_thread_select): New function. Switch threads safely.
|
(gdb_thread_select): New function. Switch threads safely.
|
||||||
(thread_command): Use gdb_thread_select().
|
(thread_command): Use gdb_thread_select().
|
||||||
Include ui-out.h.
|
Include ui-out.h.
|
||||||
@ -1358,7 +1388,7 @@ Thu Jan 13 23:34:17 EST 2000 Nicholas Duffek <nsd@cygnus.com>
|
|||||||
(proc_flags): combine flags that UnixWare splits into two locations.
|
(proc_flags): combine flags that UnixWare splits into two locations.
|
||||||
(proc_modify_flag): add support for PR_KLC (kill on last close).
|
(proc_modify_flag): add support for PR_KLC (kill on last close).
|
||||||
(proc_[un]set_kill_on_last_close): new functions.
|
(proc_[un]set_kill_on_last_close): new functions.
|
||||||
|
|
||||||
2000-01-07 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
|
2000-01-07 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
|
||||||
|
|
||||||
* infrun.c (normal_stop): Print out thread id when we stop.
|
* infrun.c (normal_stop): Print out thread id when we stop.
|
||||||
@ -1390,14 +1420,14 @@ Thu Jan 13 23:34:17 EST 2000 Nicholas Duffek <nsd@cygnus.com>
|
|||||||
2000-01-06 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
|
2000-01-06 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
|
||||||
|
|
||||||
* breakpoint.c (until_break_command): Add an argument for the
|
* breakpoint.c (until_break_command): Add an argument for the
|
||||||
continuation, the beginning of the cleanups set up by this
|
continuation, the beginning of the cleanups set up by this
|
||||||
command.
|
command.
|
||||||
(until_break_command_continuation): Do cleanups until the one
|
(until_break_command_continuation): Do cleanups until the one
|
||||||
passed in as argument instead of doing all of them.
|
passed in as argument instead of doing all of them.
|
||||||
|
|
||||||
* infcmd.c (finish_command_continuation): Expect a new argument,
|
* infcmd.c (finish_command_continuation): Expect a new argument,
|
||||||
which indicates up to where to do cleanups. Update calls to
|
which indicates up to where to do cleanups. Update calls to
|
||||||
do_exec_cleanups to use this marker, instead of ALL_CLEANUPS.
|
do_exec_cleanups to use this marker, instead of ALL_CLEANUPS.
|
||||||
(finish_command): Add another argument for the continuation: the
|
(finish_command): Add another argument for the continuation: the
|
||||||
starting cleanup for this command.
|
starting cleanup for this command.
|
||||||
|
|
||||||
|
23
gdb/defs.h
23
gdb/defs.h
@ -122,6 +122,7 @@ extern int core_addr_greaterthan (CORE_ADDR lhs, CORE_ADDR rhs);
|
|||||||
|
|
||||||
#define STRCMP(a,b) (*(a) == *(b) ? strcmp ((a), (b)) : (int)*(a) - (int)*(b))
|
#define STRCMP(a,b) (*(a) == *(b) ? strcmp ((a), (b)) : (int)*(a) - (int)*(b))
|
||||||
#define STREQ(a,b) (*(a) == *(b) ? !strcmp ((a), (b)) : 0)
|
#define STREQ(a,b) (*(a) == *(b) ? !strcmp ((a), (b)) : 0)
|
||||||
|
#define STREQ_IW(a,b) (*(a) == *(b) ? !strcmp_iw ((a), (b)) : 0)
|
||||||
#define STREQN(a,b,c) (*(a) == *(b) ? !strncmp ((a), (b), (c)) : 0)
|
#define STREQN(a,b,c) (*(a) == *(b) ? !strncmp ((a), (b), (c)) : 0)
|
||||||
|
|
||||||
/* The character GNU C++ uses to build identifiers that must be unique from
|
/* The character GNU C++ uses to build identifiers that must be unique from
|
||||||
@ -516,11 +517,11 @@ extern void print_address_symbolic (CORE_ADDR, struct ui_file *, int,
|
|||||||
char *);
|
char *);
|
||||||
|
|
||||||
extern int build_address_symbolic (CORE_ADDR addr,
|
extern int build_address_symbolic (CORE_ADDR addr,
|
||||||
int do_demangle,
|
int do_demangle,
|
||||||
char **name,
|
char **name,
|
||||||
int *offset,
|
int *offset,
|
||||||
char **filename,
|
char **filename,
|
||||||
int *line,
|
int *line,
|
||||||
int *unmapped);
|
int *unmapped);
|
||||||
|
|
||||||
extern void print_address_numeric (CORE_ADDR, int, struct ui_file *);
|
extern void print_address_numeric (CORE_ADDR, int, struct ui_file *);
|
||||||
@ -619,8 +620,8 @@ extern struct command_line *read_command_lines (char *, int);
|
|||||||
|
|
||||||
extern void free_command_lines (struct command_line **);
|
extern void free_command_lines (struct command_line **);
|
||||||
|
|
||||||
/* To continue the execution commands when running gdb asynchronously.
|
/* To continue the execution commands when running gdb asynchronously.
|
||||||
A continuation structure contains a pointer to a function to be called
|
A continuation structure contains a pointer to a function to be called
|
||||||
to finish the command, once the target has stopped. Such mechanism is
|
to finish the command, once the target has stopped. Such mechanism is
|
||||||
used bt the finish and until commands, and in the remote protocol
|
used bt the finish and until commands, and in the remote protocol
|
||||||
when opening an extended-remote connection. */
|
when opening an extended-remote connection. */
|
||||||
@ -762,7 +763,7 @@ enum val_prettyprint
|
|||||||
|
|
||||||
extern int longest_to_int (LONGEST);
|
extern int longest_to_int (LONGEST);
|
||||||
|
|
||||||
/* Assorted functions we can declare, now that const and volatile are
|
/* Assorted functions we can declare, now that const and volatile are
|
||||||
defined. */
|
defined. */
|
||||||
|
|
||||||
extern char *savestring (const char *, int);
|
extern char *savestring (const char *, int);
|
||||||
@ -1160,9 +1161,9 @@ extern int event_loop_p;
|
|||||||
extern void (*init_ui_hook) (char *argv0);
|
extern void (*init_ui_hook) (char *argv0);
|
||||||
extern void (*command_loop_hook) (void);
|
extern void (*command_loop_hook) (void);
|
||||||
extern void (*show_load_progress) (const char *section,
|
extern void (*show_load_progress) (const char *section,
|
||||||
unsigned long section_sent,
|
unsigned long section_sent,
|
||||||
unsigned long section_size,
|
unsigned long section_size,
|
||||||
unsigned long total_sent,
|
unsigned long total_sent,
|
||||||
unsigned long total_size);
|
unsigned long total_size);
|
||||||
extern void (*print_frame_info_listing_hook) (struct symtab * s,
|
extern void (*print_frame_info_listing_hook) (struct symtab * s,
|
||||||
int line, int stopline,
|
int line, int stopline,
|
||||||
|
@ -410,7 +410,7 @@ lookup_member_type (type, domain)
|
|||||||
return (mtype);
|
return (mtype);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Allocate a stub method whose return type is TYPE.
|
/* Allocate a stub method whose return type is TYPE.
|
||||||
This apparently happens for speed of symbol reading, since parsing
|
This apparently happens for speed of symbol reading, since parsing
|
||||||
out the arguments to the method is cpu-intensive, the way we are doing
|
out the arguments to the method is cpu-intensive, the way we are doing
|
||||||
it. So, we will fill in arguments later.
|
it. So, we will fill in arguments later.
|
||||||
@ -534,8 +534,8 @@ get_discrete_bounds (type, lowp, highp)
|
|||||||
case TYPE_CODE_CHAR:
|
case TYPE_CODE_CHAR:
|
||||||
*lowp = 0;
|
*lowp = 0;
|
||||||
/* This round-about calculation is to avoid shifting by
|
/* This round-about calculation is to avoid shifting by
|
||||||
TYPE_LENGTH (type) * TARGET_CHAR_BIT, which will not work
|
TYPE_LENGTH (type) * TARGET_CHAR_BIT, which will not work
|
||||||
if TYPE_LENGTH (type) == sizeof (LONGEST). */
|
if TYPE_LENGTH (type) == sizeof (LONGEST). */
|
||||||
*highp = 1 << (TYPE_LENGTH (type) * TARGET_CHAR_BIT - 1);
|
*highp = 1 << (TYPE_LENGTH (type) * TARGET_CHAR_BIT - 1);
|
||||||
*highp = (*highp - 1) | *highp;
|
*highp = (*highp - 1) | *highp;
|
||||||
return 0;
|
return 0;
|
||||||
@ -679,7 +679,7 @@ init_simd_type (char *name,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Smash TYPE to be a type of members of DOMAIN with type TO_TYPE.
|
/* Smash TYPE to be a type of members of DOMAIN with type TO_TYPE.
|
||||||
A MEMBER is a wierd thing -- it amounts to a typed offset into
|
A MEMBER is a wierd thing -- it amounts to a typed offset into
|
||||||
a struct, e.g. "an int at offset 8". A MEMBER TYPE doesn't
|
a struct, e.g. "an int at offset 8". A MEMBER TYPE doesn't
|
||||||
include the offset (that's the value of the MEMBER itself), but does
|
include the offset (that's the value of the MEMBER itself), but does
|
||||||
@ -750,7 +750,7 @@ type_name_no_tag (type)
|
|||||||
return TYPE_NAME (type);
|
return TYPE_NAME (type);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Lookup a primitive type named NAME.
|
/* Lookup a primitive type named NAME.
|
||||||
Return zero if NAME is not a primitive type. */
|
Return zero if NAME is not a primitive type. */
|
||||||
|
|
||||||
struct type *
|
struct type *
|
||||||
@ -939,7 +939,7 @@ lookup_template_type (name, type, block)
|
|||||||
return (SYMBOL_TYPE (sym));
|
return (SYMBOL_TYPE (sym));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Given a type TYPE, lookup the type of the component of type named NAME.
|
/* Given a type TYPE, lookup the type of the component of type named NAME.
|
||||||
|
|
||||||
TYPE can be either a struct or union, or a pointer or reference to a struct or
|
TYPE can be either a struct or union, or a pointer or reference to a struct or
|
||||||
union. If it is a pointer or reference, its target type is automatically used.
|
union. If it is a pointer or reference, its target type is automatically used.
|
||||||
@ -994,7 +994,7 @@ lookup_struct_elt_type (type, name, noerr)
|
|||||||
{
|
{
|
||||||
char *t_field_name = TYPE_FIELD_NAME (type, i);
|
char *t_field_name = TYPE_FIELD_NAME (type, i);
|
||||||
|
|
||||||
if (t_field_name && STREQ (t_field_name, name))
|
if (t_field_name && STREQ_IW (t_field_name, name))
|
||||||
{
|
{
|
||||||
return TYPE_FIELD_TYPE (type, i);
|
return TYPE_FIELD_TYPE (type, i);
|
||||||
}
|
}
|
||||||
@ -1045,7 +1045,7 @@ fill_in_vptr_fieldno (type)
|
|||||||
int i;
|
int i;
|
||||||
|
|
||||||
/* We must start at zero in case the first (and only) baseclass is
|
/* We must start at zero in case the first (and only) baseclass is
|
||||||
virtual (and hence we cannot share the table pointer). */
|
virtual (and hence we cannot share the table pointer). */
|
||||||
for (i = 0; i < TYPE_N_BASECLASSES (type); i++)
|
for (i = 0; i < TYPE_N_BASECLASSES (type); i++)
|
||||||
{
|
{
|
||||||
fill_in_vptr_fieldno (TYPE_BASECLASS (type, i));
|
fill_in_vptr_fieldno (TYPE_BASECLASS (type, i));
|
||||||
@ -1100,7 +1100,7 @@ get_destructor_fn_field (t, method_indexp, field_indexp)
|
|||||||
be a mistake, though--we might load in more symbols which contain a
|
be a mistake, though--we might load in more symbols which contain a
|
||||||
full definition for the type.
|
full definition for the type.
|
||||||
|
|
||||||
This used to be coded as a macro, but I don't think it is called
|
This used to be coded as a macro, but I don't think it is called
|
||||||
often enough to merit such treatment. */
|
often enough to merit such treatment. */
|
||||||
|
|
||||||
struct complaint stub_noname_complaint =
|
struct complaint stub_noname_complaint =
|
||||||
@ -1168,9 +1168,9 @@ check_typedef (type)
|
|||||||
{
|
{
|
||||||
char *name = type_name_no_tag (type);
|
char *name = type_name_no_tag (type);
|
||||||
/* FIXME: shouldn't we separately check the TYPE_NAME and the
|
/* FIXME: shouldn't we separately check the TYPE_NAME and the
|
||||||
TYPE_TAG_NAME, and look in STRUCT_NAMESPACE and/or VAR_NAMESPACE
|
TYPE_TAG_NAME, and look in STRUCT_NAMESPACE and/or VAR_NAMESPACE
|
||||||
as appropriate? (this code was written before TYPE_NAME and
|
as appropriate? (this code was written before TYPE_NAME and
|
||||||
TYPE_TAG_NAME were separate). */
|
TYPE_TAG_NAME were separate). */
|
||||||
struct symbol *sym;
|
struct symbol *sym;
|
||||||
if (name == NULL)
|
if (name == NULL)
|
||||||
{
|
{
|
||||||
@ -1378,7 +1378,7 @@ cfront_mangle_name (type, i, j)
|
|||||||
|
|
||||||
f = TYPE_FN_FIELDLIST1 (type, i); /* moved from below */
|
f = TYPE_FN_FIELDLIST1 (type, i); /* moved from below */
|
||||||
|
|
||||||
/* kludge to support cfront methods - gdb expects to find "F" for
|
/* kludge to support cfront methods - gdb expects to find "F" for
|
||||||
ARM_mangled names, so when we mangle, we have to add it here */
|
ARM_mangled names, so when we mangle, we have to add it here */
|
||||||
if (ARM_DEMANGLING)
|
if (ARM_DEMANGLING)
|
||||||
{
|
{
|
||||||
@ -1693,7 +1693,7 @@ chill_varying_type (type)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Check whether BASE is an ancestor or base class or DCLASS
|
/* Check whether BASE is an ancestor or base class or DCLASS
|
||||||
Return 1 if so, and 0 if not.
|
Return 1 if so, and 0 if not.
|
||||||
Note: callers may want to check for identity of the types before
|
Note: callers may want to check for identity of the types before
|
||||||
calling this function -- identical types are considered to satisfy
|
calling this function -- identical types are considered to satisfy
|
||||||
@ -1797,7 +1797,7 @@ static struct vbase *current_vbase_list = NULL;
|
|||||||
items. The vbasetype pointer of each item in the list points to the
|
items. The vbasetype pointer of each item in the list points to the
|
||||||
type information for a virtual base of the argument DCLASS.
|
type information for a virtual base of the argument DCLASS.
|
||||||
|
|
||||||
Helper function for virtual_base_list().
|
Helper function for virtual_base_list().
|
||||||
Note: the list goes backward, right-to-left. virtual_base_list()
|
Note: the list goes backward, right-to-left. virtual_base_list()
|
||||||
copies the items out in reverse order. */
|
copies the items out in reverse order. */
|
||||||
|
|
||||||
@ -2136,8 +2136,8 @@ rank_function (parms, nparms, args, nargs)
|
|||||||
LENGTH_MATCH (bv) = (nargs != nparms) ? LENGTH_MISMATCH_BADNESS : 0;
|
LENGTH_MATCH (bv) = (nargs != nparms) ? LENGTH_MISMATCH_BADNESS : 0;
|
||||||
|
|
||||||
/* Now rank all the parameters of the candidate function */
|
/* Now rank all the parameters of the candidate function */
|
||||||
for (i = 1; i <= min_len; i++)
|
for (i = 1; i < min_len; i++)
|
||||||
bv->rank[i] = rank_one_type (parms[i - 1], args[i - 1]);
|
bv->rank[i] = rank_one_type (parms[i], args[i]);
|
||||||
|
|
||||||
/* If more arguments than parameters, add dummy entries */
|
/* If more arguments than parameters, add dummy entries */
|
||||||
for (i = min_len + 1; i <= nargs; i++)
|
for (i = min_len + 1; i <= nargs; i++)
|
||||||
@ -2178,7 +2178,13 @@ rank_one_type (parm, arg)
|
|||||||
if (parm == arg)
|
if (parm == arg)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
#if 0
|
/* See through references, since we can almost make non-references references*/
|
||||||
|
if (TYPE_CODE (arg) == TYPE_CODE_REF)
|
||||||
|
return rank_one_type(TYPE_TARGET_TYPE(arg),parm) + REFERENCE_CONVERSION_BADNESS;
|
||||||
|
if (TYPE_CODE (parm) == TYPE_CODE_REF)
|
||||||
|
return rank_one_type(arg,TYPE_TARGET_TYPE(parm)) + REFERENCE_CONVERSION_BADNESS;
|
||||||
|
|
||||||
|
#ifdef DEBUG_OLOAD
|
||||||
/* Debugging only */
|
/* Debugging only */
|
||||||
printf ("------ Arg is %s [%d], parm is %s [%d]\n",
|
printf ("------ Arg is %s [%d], parm is %s [%d]\n",
|
||||||
TYPE_NAME (arg), TYPE_CODE (arg), TYPE_NAME (parm), TYPE_CODE (parm));
|
TYPE_NAME (arg), TYPE_CODE (arg), TYPE_NAME (parm), TYPE_CODE (parm));
|
||||||
@ -2233,7 +2239,7 @@ rank_one_type (parm, arg)
|
|||||||
if (TYPE_LENGTH (arg) == TYPE_LENGTH (parm))
|
if (TYPE_LENGTH (arg) == TYPE_LENGTH (parm))
|
||||||
{
|
{
|
||||||
/* Deal with signed, unsigned, and plain chars and
|
/* Deal with signed, unsigned, and plain chars and
|
||||||
signed and unsigned ints */
|
signed and unsigned ints */
|
||||||
if (TYPE_NOSIGN (parm))
|
if (TYPE_NOSIGN (parm))
|
||||||
{
|
{
|
||||||
/* This case only for character types */
|
/* This case only for character types */
|
||||||
@ -2246,16 +2252,16 @@ rank_one_type (parm, arg)
|
|||||||
{
|
{
|
||||||
if (TYPE_UNSIGNED (arg))
|
if (TYPE_UNSIGNED (arg))
|
||||||
{
|
{
|
||||||
if (!strcmp (TYPE_NAME (parm), TYPE_NAME (arg)))
|
if (!strcmp_iw (TYPE_NAME (parm), TYPE_NAME (arg)))
|
||||||
return 0; /* unsigned int -> unsigned int, or unsigned long -> unsigned long */
|
return 0; /* unsigned int -> unsigned int, or unsigned long -> unsigned long */
|
||||||
else if (!strcmp (TYPE_NAME (arg), "int") && !strcmp (TYPE_NAME (parm), "long"))
|
else if (!strcmp_iw (TYPE_NAME (arg), "int") && !strcmp_iw (TYPE_NAME (parm), "long"))
|
||||||
return INTEGER_PROMOTION_BADNESS; /* unsigned int -> unsigned long */
|
return INTEGER_PROMOTION_BADNESS; /* unsigned int -> unsigned long */
|
||||||
else
|
else
|
||||||
return INTEGER_COERCION_BADNESS; /* unsigned long -> unsigned int */
|
return INTEGER_COERCION_BADNESS; /* unsigned long -> unsigned int */
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (!strcmp (TYPE_NAME (arg), "long") && !strcmp (TYPE_NAME (parm), "int"))
|
if (!strcmp_iw (TYPE_NAME (arg), "long") && !strcmp_iw (TYPE_NAME (parm), "int"))
|
||||||
return INTEGER_COERCION_BADNESS; /* signed long -> unsigned int */
|
return INTEGER_COERCION_BADNESS; /* signed long -> unsigned int */
|
||||||
else
|
else
|
||||||
return INTEGER_CONVERSION_BADNESS; /* signed int/long -> unsigned int/long */
|
return INTEGER_CONVERSION_BADNESS; /* signed int/long -> unsigned int/long */
|
||||||
@ -2263,9 +2269,9 @@ rank_one_type (parm, arg)
|
|||||||
}
|
}
|
||||||
else if (!TYPE_NOSIGN (arg) && !TYPE_UNSIGNED (arg))
|
else if (!TYPE_NOSIGN (arg) && !TYPE_UNSIGNED (arg))
|
||||||
{
|
{
|
||||||
if (!strcmp (TYPE_NAME (parm), TYPE_NAME (arg)))
|
if (!strcmp_iw (TYPE_NAME (parm), TYPE_NAME (arg)))
|
||||||
return 0;
|
return 0;
|
||||||
else if (!strcmp (TYPE_NAME (arg), "int") && !strcmp (TYPE_NAME (parm), "long"))
|
else if (!strcmp_iw (TYPE_NAME (arg), "int") && !strcmp_iw (TYPE_NAME (parm), "long"))
|
||||||
return INTEGER_PROMOTION_BADNESS;
|
return INTEGER_PROMOTION_BADNESS;
|
||||||
else
|
else
|
||||||
return INTEGER_COERCION_BADNESS;
|
return INTEGER_COERCION_BADNESS;
|
||||||
@ -2827,8 +2833,8 @@ recursive_dump_type (type, spaces)
|
|||||||
|
|
||||||
default:
|
default:
|
||||||
/* We have to pick one of the union types to be able print and test
|
/* We have to pick one of the union types to be able print and test
|
||||||
the value. Pick cplus_struct_type, even though we know it isn't
|
the value. Pick cplus_struct_type, even though we know it isn't
|
||||||
any particular one. */
|
any particular one. */
|
||||||
printfi_filtered (spaces, "type_specific ");
|
printfi_filtered (spaces, "type_specific ");
|
||||||
gdb_print_host_address (TYPE_CPLUS_SPECIFIC (type), gdb_stdout);
|
gdb_print_host_address (TYPE_CPLUS_SPECIFIC (type), gdb_stdout);
|
||||||
if (TYPE_CPLUS_SPECIFIC (type) != NULL)
|
if (TYPE_CPLUS_SPECIFIC (type) != NULL)
|
||||||
|
@ -165,7 +165,7 @@ enum type_code
|
|||||||
|
|
||||||
#define TYPE_FLAG_TARGET_STUB (1 << 3)
|
#define TYPE_FLAG_TARGET_STUB (1 << 3)
|
||||||
|
|
||||||
/* Static type. If this is set, the corresponding type had
|
/* Static type. If this is set, the corresponding type had
|
||||||
* a static modifier.
|
* a static modifier.
|
||||||
* Note: This may be unnecessary, since static data members
|
* Note: This may be unnecessary, since static data members
|
||||||
* are indicated by other means (bitpos == -1)
|
* are indicated by other means (bitpos == -1)
|
||||||
@ -368,7 +368,7 @@ struct type
|
|||||||
*fields;
|
*fields;
|
||||||
|
|
||||||
/* For types with virtual functions (TYPE_CODE_STRUCT), VPTR_BASETYPE
|
/* For types with virtual functions (TYPE_CODE_STRUCT), VPTR_BASETYPE
|
||||||
is the base class which defined the virtual function table pointer.
|
is the base class which defined the virtual function table pointer.
|
||||||
|
|
||||||
For types that are pointer to member types (TYPE_CODE_MEMBER),
|
For types that are pointer to member types (TYPE_CODE_MEMBER),
|
||||||
VPTR_BASETYPE is the type that this pointer is a member of.
|
VPTR_BASETYPE is the type that this pointer is a member of.
|
||||||
@ -439,7 +439,7 @@ struct cplus_struct_type
|
|||||||
/* The "declared_type" field contains a code saying how the
|
/* The "declared_type" field contains a code saying how the
|
||||||
user really declared this type, e.g., "class s", "union s",
|
user really declared this type, e.g., "class s", "union s",
|
||||||
"struct s".
|
"struct s".
|
||||||
The 3 above things come out from the C++ compiler looking like classes,
|
The 3 above things come out from the C++ compiler looking like classes,
|
||||||
but we keep track of the real declaration so we can give
|
but we keep track of the real declaration so we can give
|
||||||
the correct information on "ptype". (Note: TEMPLATE may not
|
the correct information on "ptype". (Note: TEMPLATE may not
|
||||||
belong in this list...) */
|
belong in this list...) */
|
||||||
@ -521,7 +521,7 @@ struct cplus_struct_type
|
|||||||
|
|
||||||
/* The function type for the method.
|
/* The function type for the method.
|
||||||
(This comment used to say "The return value of the method",
|
(This comment used to say "The return value of the method",
|
||||||
but that's wrong. The function type
|
but that's wrong. The function type
|
||||||
is expected here, i.e. something with TYPE_CODE_FUNC,
|
is expected here, i.e. something with TYPE_CODE_FUNC,
|
||||||
and *not* the return-value type). */
|
and *not* the return-value type). */
|
||||||
|
|
||||||
@ -575,7 +575,7 @@ struct cplus_struct_type
|
|||||||
}
|
}
|
||||||
*fn_fieldlists;
|
*fn_fieldlists;
|
||||||
|
|
||||||
/* If this "struct type" describes a template, then it
|
/* If this "struct type" describes a template, then it
|
||||||
* has arguments. "template_args" points to an array of
|
* has arguments. "template_args" points to an array of
|
||||||
* template arg descriptors, of length "ntemplate_args".
|
* template arg descriptors, of length "ntemplate_args".
|
||||||
* The only real information in each of these template arg descriptors
|
* The only real information in each of these template arg descriptors
|
||||||
@ -608,7 +608,7 @@ struct cplus_struct_type
|
|||||||
*
|
*
|
||||||
* Fields in structure pointed to:
|
* Fields in structure pointed to:
|
||||||
* ->HAS_VTABLE : 0 => no virtual table, 1 => vtable present
|
* ->HAS_VTABLE : 0 => no virtual table, 1 => vtable present
|
||||||
*
|
*
|
||||||
* ->PRIMARY_BASE points to the first non-virtual base class that has
|
* ->PRIMARY_BASE points to the first non-virtual base class that has
|
||||||
* a virtual table.
|
* a virtual table.
|
||||||
*
|
*
|
||||||
@ -820,9 +820,9 @@ allocate_cplus_struct_type PARAMS ((struct type *));
|
|||||||
#define TYPE_LOCALTYPE_LINE(thistype) (TYPE_CPLUS_SPECIFIC(thistype)->localtype_ptr->line)
|
#define TYPE_LOCALTYPE_LINE(thistype) (TYPE_CPLUS_SPECIFIC(thistype)->localtype_ptr->line)
|
||||||
|
|
||||||
#define TYPE_IS_OPAQUE(thistype) (((TYPE_CODE (thistype) == TYPE_CODE_STRUCT) || \
|
#define TYPE_IS_OPAQUE(thistype) (((TYPE_CODE (thistype) == TYPE_CODE_STRUCT) || \
|
||||||
(TYPE_CODE (thistype) == TYPE_CODE_UNION)) && \
|
(TYPE_CODE (thistype) == TYPE_CODE_UNION)) && \
|
||||||
(TYPE_NFIELDS (thistype) == 0) && \
|
(TYPE_NFIELDS (thistype) == 0) && \
|
||||||
(TYPE_CPLUS_SPECIFIC (thistype) && (TYPE_NFN_FIELDS (thistype) == 0)))
|
(TYPE_CPLUS_SPECIFIC (thistype) && (TYPE_NFN_FIELDS (thistype) == 0)))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -1081,9 +1081,9 @@ count_virtual_fns PARAMS ((struct type *));
|
|||||||
* typeinfo pointer, and dup base info pointer */
|
* typeinfo pointer, and dup base info pointer */
|
||||||
#define HP_ACC_VFUNC_START 4
|
#define HP_ACC_VFUNC_START 4
|
||||||
|
|
||||||
/* (Negative) Offset where virtual base offset entries begin
|
/* (Negative) Offset where virtual base offset entries begin
|
||||||
* in the virtual table. Skips over metavtable pointer and
|
* in the virtual table. Skips over metavtable pointer and
|
||||||
* the self-offset entry.
|
* the self-offset entry.
|
||||||
* NOTE: NEGATE THIS BEFORE USING! The virtual base offsets
|
* NOTE: NEGATE THIS BEFORE USING! The virtual base offsets
|
||||||
* appear before the address point of the vtable (the slot
|
* appear before the address point of the vtable (the slot
|
||||||
* pointed to by the object's vtable pointer), i.e. at lower
|
* pointed to by the object's vtable pointer), i.e. at lower
|
||||||
@ -1129,9 +1129,10 @@ count_virtual_fns PARAMS ((struct type *));
|
|||||||
#define POINTER_CONVERSION_BADNESS 2
|
#define POINTER_CONVERSION_BADNESS 2
|
||||||
/* Badness of conversion of pointer to void pointer */
|
/* Badness of conversion of pointer to void pointer */
|
||||||
#define VOID_PTR_CONVERSION_BADNESS 2
|
#define VOID_PTR_CONVERSION_BADNESS 2
|
||||||
/* Badness of convering derived to base class */
|
/* Badness of converting derived to base class */
|
||||||
#define BASE_CONVERSION_BADNESS 2
|
#define BASE_CONVERSION_BADNESS 2
|
||||||
|
/* Badness of converting from non-reference to reference*/
|
||||||
|
#define REFERENCE_CONVERSION_BADNESS 2
|
||||||
/* Non-standard conversions allowed by the debugger */
|
/* Non-standard conversions allowed by the debugger */
|
||||||
/* Converting a pointer to an int is usually OK */
|
/* Converting a pointer to an int is usually OK */
|
||||||
#define NS_POINTER_CONVERSION_BADNESS 10
|
#define NS_POINTER_CONVERSION_BADNESS 10
|
||||||
|
220
gdb/valops.c
220
gdb/valops.c
@ -240,8 +240,8 @@ value_cast (type, arg2)
|
|||||||
&& TYPE_NAME (type) != 0)
|
&& TYPE_NAME (type) != 0)
|
||||||
{
|
{
|
||||||
/* Look in the type of the source to see if it contains the
|
/* Look in the type of the source to see if it contains the
|
||||||
type of the target as a superclass. If so, we'll need to
|
type of the target as a superclass. If so, we'll need to
|
||||||
offset the object in addition to changing its type. */
|
offset the object in addition to changing its type. */
|
||||||
value_ptr v = search_struct_field (type_name_no_tag (type),
|
value_ptr v = search_struct_field (type_name_no_tag (type),
|
||||||
arg2, 0, type2, 1);
|
arg2, 0, type2, 1);
|
||||||
if (v)
|
if (v)
|
||||||
@ -297,8 +297,8 @@ value_cast (type, arg2)
|
|||||||
value_ptr v;
|
value_ptr v;
|
||||||
|
|
||||||
/* Look in the type of the source to see if it contains the
|
/* Look in the type of the source to see if it contains the
|
||||||
type of the target as a superclass. If so, we'll need to
|
type of the target as a superclass. If so, we'll need to
|
||||||
offset the pointer rather than just change its type. */
|
offset the pointer rather than just change its type. */
|
||||||
if (TYPE_NAME (t1) != NULL)
|
if (TYPE_NAME (t1) != NULL)
|
||||||
{
|
{
|
||||||
v = search_struct_field (type_name_no_tag (t1),
|
v = search_struct_field (type_name_no_tag (t1),
|
||||||
@ -312,9 +312,9 @@ value_cast (type, arg2)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Look in the type of the target to see if it contains the
|
/* Look in the type of the target to see if it contains the
|
||||||
type of the source as a superclass. If so, we'll need to
|
type of the source as a superclass. If so, we'll need to
|
||||||
offset the pointer rather than just change its type.
|
offset the pointer rather than just change its type.
|
||||||
FIXME: This fails silently with virtual inheritance. */
|
FIXME: This fails silently with virtual inheritance. */
|
||||||
if (TYPE_NAME (t2) != NULL)
|
if (TYPE_NAME (t2) != NULL)
|
||||||
{
|
{
|
||||||
v = search_struct_field (type_name_no_tag (t2),
|
v = search_struct_field (type_name_no_tag (t2),
|
||||||
@ -411,14 +411,14 @@ value_zero (type, lv)
|
|||||||
return val;
|
return val;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Return a value with type TYPE located at ADDR.
|
/* Return a value with type TYPE located at ADDR.
|
||||||
|
|
||||||
Call value_at only if the data needs to be fetched immediately;
|
Call value_at only if the data needs to be fetched immediately;
|
||||||
if we can be 'lazy' and defer the fetch, perhaps indefinately, call
|
if we can be 'lazy' and defer the fetch, perhaps indefinately, call
|
||||||
value_at_lazy instead. value_at_lazy simply records the address of
|
value_at_lazy instead. value_at_lazy simply records the address of
|
||||||
the data and sets the lazy-evaluation-required flag. The lazy flag
|
the data and sets the lazy-evaluation-required flag. The lazy flag
|
||||||
is tested in the VALUE_CONTENTS macro, which is used if and when
|
is tested in the VALUE_CONTENTS macro, which is used if and when
|
||||||
the contents are actually required.
|
the contents are actually required.
|
||||||
|
|
||||||
Note: value_at does *NOT* handle embedded offsets; perform such
|
Note: value_at does *NOT* handle embedded offsets; perform such
|
||||||
adjustments before or after calling it. */
|
adjustments before or after calling it. */
|
||||||
@ -491,9 +491,9 @@ value_at_lazy (type, addr, sect)
|
|||||||
return val;
|
return val;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Called only from the VALUE_CONTENTS and VALUE_CONTENTS_ALL macros,
|
/* Called only from the VALUE_CONTENTS and VALUE_CONTENTS_ALL macros,
|
||||||
if the current data for a variable needs to be loaded into
|
if the current data for a variable needs to be loaded into
|
||||||
VALUE_CONTENTS(VAL). Fetches the data from the user's process, and
|
VALUE_CONTENTS(VAL). Fetches the data from the user's process, and
|
||||||
clears the lazy flag to indicate that the data in the buffer is valid.
|
clears the lazy flag to indicate that the data in the buffer is valid.
|
||||||
|
|
||||||
If the value is zero-length, we avoid calling read_memory, which would
|
If the value is zero-length, we avoid calling read_memory, which would
|
||||||
@ -688,10 +688,10 @@ value_assign (toval, fromval)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
/* Assigning to the stack pointer, frame pointer, and other
|
/* Assigning to the stack pointer, frame pointer, and other
|
||||||
(architecture and calling convention specific) registers may
|
(architecture and calling convention specific) registers may
|
||||||
cause the frame cache to be out of date. We just do this
|
cause the frame cache to be out of date. We just do this
|
||||||
on all assignments to registers for simplicity; I doubt the slowdown
|
on all assignments to registers for simplicity; I doubt the slowdown
|
||||||
matters. */
|
matters. */
|
||||||
reinit_frame_cache ();
|
reinit_frame_cache ();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -929,8 +929,8 @@ value_addr (arg1)
|
|||||||
if (TYPE_CODE (type) == TYPE_CODE_REF)
|
if (TYPE_CODE (type) == TYPE_CODE_REF)
|
||||||
{
|
{
|
||||||
/* Copy the value, but change the type from (T&) to (T*).
|
/* Copy the value, but change the type from (T&) to (T*).
|
||||||
We keep the same location information, which is efficient,
|
We keep the same location information, which is efficient,
|
||||||
and allows &(&X) to get the location containing the reference. */
|
and allows &(&X) to get the location containing the reference. */
|
||||||
arg2 = value_copy (arg1);
|
arg2 = value_copy (arg1);
|
||||||
VALUE_TYPE (arg2) = lookup_pointer_type (TYPE_TARGET_TYPE (type));
|
VALUE_TYPE (arg2) = lookup_pointer_type (TYPE_TARGET_TYPE (type));
|
||||||
return arg2;
|
return arg2;
|
||||||
@ -1131,7 +1131,7 @@ default_push_arguments (nargs, args, sp, struct_return, struct_addr)
|
|||||||
#ifndef COERCE_FLOAT_TO_DOUBLE
|
#ifndef COERCE_FLOAT_TO_DOUBLE
|
||||||
#define COERCE_FLOAT_TO_DOUBLE(formal, actual) \
|
#define COERCE_FLOAT_TO_DOUBLE(formal, actual) \
|
||||||
(default_coerce_float_to_double ((formal), (actual)))
|
(default_coerce_float_to_double ((formal), (actual)))
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/* A default function for COERCE_FLOAT_TO_DOUBLE: do the coercion only
|
/* A default function for COERCE_FLOAT_TO_DOUBLE: do the coercion only
|
||||||
@ -1199,16 +1199,16 @@ value_arg_coerce (arg, param_type, is_prototyped)
|
|||||||
type = builtin_type_int;
|
type = builtin_type_int;
|
||||||
}
|
}
|
||||||
/* Currently all target ABIs require at least the width of an integer
|
/* Currently all target ABIs require at least the width of an integer
|
||||||
type for an argument. We may have to conditionalize the following
|
type for an argument. We may have to conditionalize the following
|
||||||
type coercion for future targets. */
|
type coercion for future targets. */
|
||||||
if (TYPE_LENGTH (type) < TYPE_LENGTH (builtin_type_int))
|
if (TYPE_LENGTH (type) < TYPE_LENGTH (builtin_type_int))
|
||||||
type = builtin_type_int;
|
type = builtin_type_int;
|
||||||
break;
|
break;
|
||||||
case TYPE_CODE_FLT:
|
case TYPE_CODE_FLT:
|
||||||
/* FIXME: We should always convert floats to doubles in the
|
/* FIXME: We should always convert floats to doubles in the
|
||||||
non-prototyped case. As many debugging formats include
|
non-prototyped case. As many debugging formats include
|
||||||
no information about prototyping, we have to live with
|
no information about prototyping, we have to live with
|
||||||
COERCE_FLOAT_TO_DOUBLE for now. */
|
COERCE_FLOAT_TO_DOUBLE for now. */
|
||||||
if (!is_prototyped && COERCE_FLOAT_TO_DOUBLE (param_type, arg_type))
|
if (!is_prototyped && COERCE_FLOAT_TO_DOUBLE (param_type, arg_type))
|
||||||
{
|
{
|
||||||
if (TYPE_LENGTH (type) < TYPE_LENGTH (builtin_type_double))
|
if (TYPE_LENGTH (type) < TYPE_LENGTH (builtin_type_double))
|
||||||
@ -1244,7 +1244,7 @@ value_arg_coerce (arg, param_type, is_prototyped)
|
|||||||
return value_cast (type, arg);
|
return value_cast (type, arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Determine a function's address and its return type from its value.
|
/* Determine a function's address and its return type from its value.
|
||||||
Calls error() if the function is not valid for calling. */
|
Calls error() if the function is not valid for calling. */
|
||||||
|
|
||||||
static CORE_ADDR
|
static CORE_ADDR
|
||||||
@ -1287,7 +1287,7 @@ find_function_addr (function, retval_type)
|
|||||||
else if (code == TYPE_CODE_INT)
|
else if (code == TYPE_CODE_INT)
|
||||||
{
|
{
|
||||||
/* Handle the case of functions lacking debugging info.
|
/* Handle the case of functions lacking debugging info.
|
||||||
Their values are characters since their addresses are char */
|
Their values are characters since their addresses are char */
|
||||||
if (TYPE_LENGTH (ftype) == 1)
|
if (TYPE_LENGTH (ftype) == 1)
|
||||||
funaddr = value_as_pointer (value_addr (function));
|
funaddr = value_as_pointer (value_addr (function));
|
||||||
else
|
else
|
||||||
@ -1335,7 +1335,7 @@ hand_function_call (function, nargs, args)
|
|||||||
/* CALL_DUMMY is an array of words (REGISTER_SIZE), but each word
|
/* CALL_DUMMY is an array of words (REGISTER_SIZE), but each word
|
||||||
is in host byte order. Before calling FIX_CALL_DUMMY, we byteswap it
|
is in host byte order. Before calling FIX_CALL_DUMMY, we byteswap it
|
||||||
and remove any extra bytes which might exist because ULONGEST is
|
and remove any extra bytes which might exist because ULONGEST is
|
||||||
bigger than REGISTER_SIZE.
|
bigger than REGISTER_SIZE.
|
||||||
|
|
||||||
NOTE: This is pretty wierd, as the call dummy is actually a
|
NOTE: This is pretty wierd, as the call dummy is actually a
|
||||||
sequence of instructions. But CISC machines will have
|
sequence of instructions. But CISC machines will have
|
||||||
@ -1471,8 +1471,8 @@ hand_function_call (function, nargs, args)
|
|||||||
for (i = nargs - 1; i >= 0; i--)
|
for (i = nargs - 1; i >= 0; i--)
|
||||||
{
|
{
|
||||||
/* If we're off the end of the known arguments, do the standard
|
/* If we're off the end of the known arguments, do the standard
|
||||||
promotions. FIXME: if we had a prototype, this should only
|
promotions. FIXME: if we had a prototype, this should only
|
||||||
be allowed if ... were present. */
|
be allowed if ... were present. */
|
||||||
if (i >= TYPE_NFIELDS (ftype))
|
if (i >= TYPE_NFIELDS (ftype))
|
||||||
args[i] = value_arg_coerce (args[i], NULL, 0);
|
args[i] = value_arg_coerce (args[i], NULL, 0);
|
||||||
|
|
||||||
@ -1484,25 +1484,25 @@ hand_function_call (function, nargs, args)
|
|||||||
args[i] = value_arg_coerce (args[i], param_type, is_prototyped);
|
args[i] = value_arg_coerce (args[i], param_type, is_prototyped);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*elz: this code is to handle the case in which the function to be called
|
/*elz: this code is to handle the case in which the function to be called
|
||||||
has a pointer to function as parameter and the corresponding actual argument
|
has a pointer to function as parameter and the corresponding actual argument
|
||||||
is the address of a function and not a pointer to function variable.
|
is the address of a function and not a pointer to function variable.
|
||||||
In aCC compiled code, the calls through pointers to functions (in the body
|
In aCC compiled code, the calls through pointers to functions (in the body
|
||||||
of the function called by hand) are made via $$dyncall_external which
|
of the function called by hand) are made via $$dyncall_external which
|
||||||
requires some registers setting, this is taken care of if we call
|
requires some registers setting, this is taken care of if we call
|
||||||
via a function pointer variable, but not via a function address.
|
via a function pointer variable, but not via a function address.
|
||||||
In cc this is not a problem. */
|
In cc this is not a problem. */
|
||||||
|
|
||||||
if (using_gcc == 0)
|
if (using_gcc == 0)
|
||||||
if (param_type)
|
if (param_type)
|
||||||
/* if this parameter is a pointer to function */
|
/* if this parameter is a pointer to function */
|
||||||
if (TYPE_CODE (param_type) == TYPE_CODE_PTR)
|
if (TYPE_CODE (param_type) == TYPE_CODE_PTR)
|
||||||
if (TYPE_CODE (param_type->target_type) == TYPE_CODE_FUNC)
|
if (TYPE_CODE (param_type->target_type) == TYPE_CODE_FUNC)
|
||||||
/* elz: FIXME here should go the test about the compiler used
|
/* elz: FIXME here should go the test about the compiler used
|
||||||
to compile the target. We want to issue the error
|
to compile the target. We want to issue the error
|
||||||
message only if the compiler used was HP's aCC.
|
message only if the compiler used was HP's aCC.
|
||||||
If we used HP's cc, then there is no problem and no need
|
If we used HP's cc, then there is no problem and no need
|
||||||
to return at this point */
|
to return at this point */
|
||||||
if (using_gcc == 0) /* && compiler == aCC */
|
if (using_gcc == 0) /* && compiler == aCC */
|
||||||
/* go see if the actual parameter is a variable of type
|
/* go see if the actual parameter is a variable of type
|
||||||
pointer to function or just a function */
|
pointer to function or just a function */
|
||||||
@ -1591,8 +1591,8 @@ You must use a pointer to function type variable. Command ignored.", arg_name);
|
|||||||
int len = TYPE_LENGTH (value_type);
|
int len = TYPE_LENGTH (value_type);
|
||||||
#ifdef STACK_ALIGN
|
#ifdef STACK_ALIGN
|
||||||
/* MVS 11/22/96: I think at least some of this stack_align code is
|
/* MVS 11/22/96: I think at least some of this stack_align code is
|
||||||
really broken. Better to let PUSH_ARGUMENTS adjust the stack in
|
really broken. Better to let PUSH_ARGUMENTS adjust the stack in
|
||||||
a target-defined manner. */
|
a target-defined manner. */
|
||||||
len = STACK_ALIGN (len);
|
len = STACK_ALIGN (len);
|
||||||
#endif
|
#endif
|
||||||
if (INNER_THAN (1, 2))
|
if (INNER_THAN (1, 2))
|
||||||
@ -1611,7 +1611,7 @@ You must use a pointer to function type variable. Command ignored.", arg_name);
|
|||||||
|
|
||||||
/* elz: on HPPA no need for this extra alignment, maybe it is needed
|
/* elz: on HPPA no need for this extra alignment, maybe it is needed
|
||||||
on other architectures. This is because all the alignment is taken care
|
on other architectures. This is because all the alignment is taken care
|
||||||
of in the above code (ifdef REG_STRUCT_HAS_ADDR) and in
|
of in the above code (ifdef REG_STRUCT_HAS_ADDR) and in
|
||||||
hppa_push_arguments */
|
hppa_push_arguments */
|
||||||
#ifndef NO_EXTRA_ALIGNMENT_NEEDED
|
#ifndef NO_EXTRA_ALIGNMENT_NEEDED
|
||||||
|
|
||||||
@ -1642,7 +1642,7 @@ You must use a pointer to function type variable. Command ignored.", arg_name);
|
|||||||
function. Since this doesn't actually involve executing a JSR/BSR
|
function. Since this doesn't actually involve executing a JSR/BSR
|
||||||
instruction, the return address must be set up by hand, either by
|
instruction, the return address must be set up by hand, either by
|
||||||
pushing onto the stack or copying into a return-address register
|
pushing onto the stack or copying into a return-address register
|
||||||
as appropriate. Formerly this has been done in PUSH_ARGUMENTS,
|
as appropriate. Formerly this has been done in PUSH_ARGUMENTS,
|
||||||
but that's overloading its functionality a bit, so I'm making it
|
but that's overloading its functionality a bit, so I'm making it
|
||||||
explicit to do it here. */
|
explicit to do it here. */
|
||||||
sp = PUSH_RETURN_ADDRESS (real_pc, sp);
|
sp = PUSH_RETURN_ADDRESS (real_pc, sp);
|
||||||
@ -1652,7 +1652,7 @@ You must use a pointer to function type variable. Command ignored.", arg_name);
|
|||||||
if (!INNER_THAN (1, 2))
|
if (!INNER_THAN (1, 2))
|
||||||
{
|
{
|
||||||
/* If stack grows up, we must leave a hole at the bottom, note
|
/* If stack grows up, we must leave a hole at the bottom, note
|
||||||
that sp already has been advanced for the arguments! */
|
that sp already has been advanced for the arguments! */
|
||||||
if (CALL_DUMMY_STACK_ADJUST_P)
|
if (CALL_DUMMY_STACK_ADJUST_P)
|
||||||
sp += CALL_DUMMY_STACK_ADJUST;
|
sp += CALL_DUMMY_STACK_ADJUST;
|
||||||
sp = STACK_ALIGN (sp);
|
sp = STACK_ALIGN (sp);
|
||||||
@ -1677,7 +1677,7 @@ You must use a pointer to function type variable. Command ignored.", arg_name);
|
|||||||
it doesn't cost us anything but space and if the function is pcc
|
it doesn't cost us anything but space and if the function is pcc
|
||||||
it will ignore this value, we will make that assumption.
|
it will ignore this value, we will make that assumption.
|
||||||
|
|
||||||
Also note that on some machines (like the sparc) pcc uses a
|
Also note that on some machines (like the sparc) pcc uses a
|
||||||
convention like gcc's. */
|
convention like gcc's. */
|
||||||
|
|
||||||
if (struct_return)
|
if (struct_return)
|
||||||
@ -1733,12 +1733,12 @@ You must use a pointer to function type variable. Command ignored.", arg_name);
|
|||||||
/* We stopped inside the FUNCTION because of a random signal.
|
/* We stopped inside the FUNCTION because of a random signal.
|
||||||
Further execution of the FUNCTION is not allowed. */
|
Further execution of the FUNCTION is not allowed. */
|
||||||
|
|
||||||
if (unwind_on_signal_p)
|
if (unwind_on_signal_p)
|
||||||
{
|
{
|
||||||
/* The user wants the context restored. */
|
/* The user wants the context restored. */
|
||||||
|
|
||||||
/* We must get back to the frame we were before the dummy call. */
|
/* We must get back to the frame we were before the dummy call. */
|
||||||
POP_FRAME;
|
POP_FRAME;
|
||||||
|
|
||||||
/* FIXME: Insert a bunch of wrap_here; name can be very long if it's
|
/* FIXME: Insert a bunch of wrap_here; name can be very long if it's
|
||||||
a C++ name with arguments and stuff. */
|
a C++ name with arguments and stuff. */
|
||||||
@ -2032,8 +2032,8 @@ typecmp (staticp, t1, t2)
|
|||||||
/* Array to pointer is a `trivial conversion' according to the ARM. */
|
/* Array to pointer is a `trivial conversion' according to the ARM. */
|
||||||
|
|
||||||
/* We should be doing much hairier argument matching (see section 13.2
|
/* We should be doing much hairier argument matching (see section 13.2
|
||||||
of the ARM), but as a quick kludge, just check for the same type
|
of the ARM), but as a quick kludge, just check for the same type
|
||||||
code. */
|
code. */
|
||||||
if (TYPE_CODE (t1[i]) != TYPE_CODE (VALUE_TYPE (t2[i])))
|
if (TYPE_CODE (t1[i]) != TYPE_CODE (VALUE_TYPE (t2[i])))
|
||||||
return i + 1;
|
return i + 1;
|
||||||
}
|
}
|
||||||
@ -2068,7 +2068,7 @@ search_struct_field (name, arg1, offset, type, looking_for_baseclass)
|
|||||||
{
|
{
|
||||||
char *t_field_name = TYPE_FIELD_NAME (type, i);
|
char *t_field_name = TYPE_FIELD_NAME (type, i);
|
||||||
|
|
||||||
if (t_field_name && STREQ (t_field_name, name))
|
if (t_field_name && STREQ_IW (t_field_name, name))
|
||||||
{
|
{
|
||||||
value_ptr v;
|
value_ptr v;
|
||||||
if (TYPE_FIELD_STATIC (type, i))
|
if (TYPE_FIELD_STATIC (type, i))
|
||||||
@ -2083,7 +2083,7 @@ search_struct_field (name, arg1, offset, type, looking_for_baseclass)
|
|||||||
if (t_field_name
|
if (t_field_name
|
||||||
&& (t_field_name[0] == '\0'
|
&& (t_field_name[0] == '\0'
|
||||||
|| (TYPE_CODE (type) == TYPE_CODE_UNION
|
|| (TYPE_CODE (type) == TYPE_CODE_UNION
|
||||||
&& STREQ (t_field_name, "else"))))
|
&& STREQ_IW (t_field_name, "else"))))
|
||||||
{
|
{
|
||||||
struct type *field_type = TYPE_FIELD_TYPE (type, i);
|
struct type *field_type = TYPE_FIELD_TYPE (type, i);
|
||||||
if (TYPE_CODE (field_type) == TYPE_CODE_UNION
|
if (TYPE_CODE (field_type) == TYPE_CODE_UNION
|
||||||
@ -2124,11 +2124,11 @@ search_struct_field (name, arg1, offset, type, looking_for_baseclass)
|
|||||||
value_ptr v;
|
value_ptr v;
|
||||||
struct type *basetype = check_typedef (TYPE_BASECLASS (type, i));
|
struct type *basetype = check_typedef (TYPE_BASECLASS (type, i));
|
||||||
/* If we are looking for baseclasses, this is what we get when we
|
/* If we are looking for baseclasses, this is what we get when we
|
||||||
hit them. But it could happen that the base part's member name
|
hit them. But it could happen that the base part's member name
|
||||||
is not yet filled in. */
|
is not yet filled in. */
|
||||||
int found_baseclass = (looking_for_baseclass
|
int found_baseclass = (looking_for_baseclass
|
||||||
&& TYPE_BASECLASS_NAME (type, i) != NULL
|
&& TYPE_BASECLASS_NAME (type, i) != NULL
|
||||||
&& STREQ (name, TYPE_BASECLASS_NAME (type, i)));
|
&& STREQ_IW (name, TYPE_BASECLASS_NAME (type, i)));
|
||||||
|
|
||||||
if (BASETYPE_VIA_VIRTUAL (type, i))
|
if (BASETYPE_VIA_VIRTUAL (type, i))
|
||||||
{
|
{
|
||||||
@ -2270,7 +2270,7 @@ find_rt_vbase_offset (type, basetype, valaddr, offset, boffset_p, skip_p)
|
|||||||
* virtual base entries. Offset is negative -- virtual base entries
|
* virtual base entries. Offset is negative -- virtual base entries
|
||||||
* appear _before_ the address point of the virtual table. */
|
* appear _before_ the address point of the virtual table. */
|
||||||
|
|
||||||
/* pai: FIXME -- 32x64 problem, if word = 8 bytes, change multiplier
|
/* pai: FIXME -- 32x64 problem, if word = 8 bytes, change multiplier
|
||||||
& use long type */
|
& use long type */
|
||||||
|
|
||||||
/* epstein : FIXME -- added param for overlay section. May not be correct */
|
/* epstein : FIXME -- added param for overlay section. May not be correct */
|
||||||
@ -2314,7 +2314,7 @@ search_struct_method (name, arg1p, args, offset, static_memfuncp, type)
|
|||||||
else if (cplus_demangle_opname (t_field_name, dem_opname, 0))
|
else if (cplus_demangle_opname (t_field_name, dem_opname, 0))
|
||||||
t_field_name = dem_opname;
|
t_field_name = dem_opname;
|
||||||
}
|
}
|
||||||
if (t_field_name && STREQ (t_field_name, name))
|
if (t_field_name && !strcmp_iw (t_field_name, name))
|
||||||
{
|
{
|
||||||
int j = TYPE_FN_FIELDLIST_LENGTH (type, i) - 1;
|
int j = TYPE_FN_FIELDLIST_LENGTH (type, i) - 1;
|
||||||
struct fn_field *f = TYPE_FN_FIELDLIST1 (type, i);
|
struct fn_field *f = TYPE_FN_FIELDLIST1 (type, i);
|
||||||
@ -2351,7 +2351,7 @@ search_struct_method (name, arg1p, args, offset, static_memfuncp, type)
|
|||||||
if (TYPE_HAS_VTABLE (type))
|
if (TYPE_HAS_VTABLE (type))
|
||||||
{
|
{
|
||||||
/* HP aCC compiled type, search for virtual base offset
|
/* HP aCC compiled type, search for virtual base offset
|
||||||
according to HP/Taligent runtime spec. */
|
according to HP/Taligent runtime spec. */
|
||||||
int skip;
|
int skip;
|
||||||
find_rt_vbase_offset (type, TYPE_BASECLASS (type, i),
|
find_rt_vbase_offset (type, TYPE_BASECLASS (type, i),
|
||||||
VALUE_CONTENTS_ALL (*arg1p),
|
VALUE_CONTENTS_ALL (*arg1p),
|
||||||
@ -2366,8 +2366,8 @@ search_struct_method (name, arg1p, args, offset, static_memfuncp, type)
|
|||||||
char *base_valaddr;
|
char *base_valaddr;
|
||||||
|
|
||||||
/* The virtual base class pointer might have been clobbered by the
|
/* The virtual base class pointer might have been clobbered by the
|
||||||
user program. Make sure that it still points to a valid memory
|
user program. Make sure that it still points to a valid memory
|
||||||
location. */
|
location. */
|
||||||
|
|
||||||
if (offset < 0 || offset >= TYPE_LENGTH (type))
|
if (offset < 0 || offset >= TYPE_LENGTH (type))
|
||||||
{
|
{
|
||||||
@ -2467,13 +2467,13 @@ value_struct_elt (argp, args, name, static_memfuncp, err)
|
|||||||
/* if there are no arguments ...do this... */
|
/* if there are no arguments ...do this... */
|
||||||
|
|
||||||
/* Try as a field first, because if we succeed, there
|
/* Try as a field first, because if we succeed, there
|
||||||
is less work to be done. */
|
is less work to be done. */
|
||||||
v = search_struct_field (name, *argp, 0, t, 0);
|
v = search_struct_field (name, *argp, 0, t, 0);
|
||||||
if (v)
|
if (v)
|
||||||
return v;
|
return v;
|
||||||
|
|
||||||
/* C++: If it was not found as a data field, then try to
|
/* C++: If it was not found as a data field, then try to
|
||||||
return it as a pointer to a method. */
|
return it as a pointer to a method. */
|
||||||
|
|
||||||
if (destructor_name_p (name, t))
|
if (destructor_name_p (name, t))
|
||||||
error ("Cannot get value of destructor");
|
error ("Cannot get value of destructor");
|
||||||
@ -2525,8 +2525,8 @@ value_struct_elt (argp, args, name, static_memfuncp, err)
|
|||||||
else if (v == 0)
|
else if (v == 0)
|
||||||
{
|
{
|
||||||
/* See if user tried to invoke data as function. If so,
|
/* See if user tried to invoke data as function. If so,
|
||||||
hand it back. If it's not callable (i.e., a pointer to function),
|
hand it back. If it's not callable (i.e., a pointer to function),
|
||||||
gdb should give an error. */
|
gdb should give an error. */
|
||||||
v = search_struct_field (name, *argp, 0, t, 0);
|
v = search_struct_field (name, *argp, 0, t, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2570,7 +2570,7 @@ find_method_list (argp, method, offset, static_memfuncp, type, num_fns, basetype
|
|||||||
{
|
{
|
||||||
/* pai: FIXME What about operators and type conversions? */
|
/* pai: FIXME What about operators and type conversions? */
|
||||||
char *fn_field_name = TYPE_FN_FIELDLIST_NAME (type, i);
|
char *fn_field_name = TYPE_FN_FIELDLIST_NAME (type, i);
|
||||||
if (fn_field_name && STREQ (fn_field_name, method))
|
if (fn_field_name && STREQ_IW (fn_field_name, method))
|
||||||
{
|
{
|
||||||
*num_fns = TYPE_FN_FIELDLIST_LENGTH (type, i);
|
*num_fns = TYPE_FN_FIELDLIST_LENGTH (type, i);
|
||||||
*basetype = type;
|
*basetype = type;
|
||||||
@ -2736,13 +2736,16 @@ find_overload_match (arg_types, nargs, name, method, lax, obj, fsym, valp, symp,
|
|||||||
|
|
||||||
char *obj_type_name = NULL;
|
char *obj_type_name = NULL;
|
||||||
char *func_name = NULL;
|
char *func_name = NULL;
|
||||||
|
int i,j,len,len2;
|
||||||
|
struct type *domain;
|
||||||
|
struct fn_field *f;
|
||||||
|
|
||||||
/* Get the list of overloaded methods or functions */
|
/* Get the list of overloaded methods or functions */
|
||||||
if (method)
|
if (method)
|
||||||
{
|
{
|
||||||
obj_type_name = TYPE_NAME (VALUE_TYPE (obj));
|
obj_type_name = TYPE_NAME (VALUE_TYPE (obj));
|
||||||
/* Hack: evaluate_subexp_standard often passes in a pointer
|
/* Hack: evaluate_subexp_standard often passes in a pointer
|
||||||
value rather than the object itself, so try again */
|
value rather than the object itself, so try again */
|
||||||
if ((!obj_type_name || !*obj_type_name) &&
|
if ((!obj_type_name || !*obj_type_name) &&
|
||||||
(TYPE_CODE (VALUE_TYPE (obj)) == TYPE_CODE_PTR))
|
(TYPE_CODE (VALUE_TYPE (obj)) == TYPE_CODE_PTR))
|
||||||
obj_type_name = TYPE_NAME (TYPE_TARGET_TYPE (VALUE_TYPE (obj)));
|
obj_type_name = TYPE_NAME (TYPE_TARGET_TYPE (VALUE_TYPE (obj)));
|
||||||
@ -2756,6 +2759,26 @@ find_overload_match (arg_types, nargs, name, method, lax, obj, fsym, valp, symp,
|
|||||||
obj_type_name,
|
obj_type_name,
|
||||||
(obj_type_name && *obj_type_name) ? "::" : "",
|
(obj_type_name && *obj_type_name) ? "::" : "",
|
||||||
name);
|
name);
|
||||||
|
domain=TYPE_DOMAIN_TYPE(fns_ptr[0].type);
|
||||||
|
len = TYPE_NFN_FIELDS (domain);
|
||||||
|
/*This stuff is for STABS, which won't give us the info we need directly in the types.
|
||||||
|
* We have to use the method stub conversion to get it.
|
||||||
|
* Be aware that this is by no means perfect, and if you use
|
||||||
|
* STABS, please move to DWARF-2, or something like it, because
|
||||||
|
* trying to improve overloading using STABS is really a waste
|
||||||
|
* of time.
|
||||||
|
*/
|
||||||
|
for (i = 0; i < len; i++)
|
||||||
|
{
|
||||||
|
f = TYPE_FN_FIELDLIST1 (domain, i);
|
||||||
|
len2 = TYPE_FN_FIELDLIST_LENGTH (domain, i);
|
||||||
|
|
||||||
|
for (j = 0; j < len2; j++)
|
||||||
|
{
|
||||||
|
if (TYPE_FN_FIELD_STUB (f, j))
|
||||||
|
check_stub_method (domain, i, j);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -2763,12 +2786,12 @@ find_overload_match (arg_types, nargs, name, method, lax, obj, fsym, valp, symp,
|
|||||||
func_name = cplus_demangle (SYMBOL_NAME (fsym), DMGL_NO_OPTS);
|
func_name = cplus_demangle (SYMBOL_NAME (fsym), DMGL_NO_OPTS);
|
||||||
|
|
||||||
/* If the name is NULL this must be a C-style function.
|
/* If the name is NULL this must be a C-style function.
|
||||||
Just return the same symbol. */
|
Just return the same symbol. */
|
||||||
if (!func_name)
|
if (!func_name)
|
||||||
{
|
{
|
||||||
*symp = fsym;
|
*symp = fsym;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
oload_syms = make_symbol_overload_list (fsym);
|
oload_syms = make_symbol_overload_list (fsym);
|
||||||
while (oload_syms[++i])
|
while (oload_syms[++i])
|
||||||
@ -2782,14 +2805,28 @@ find_overload_match (arg_types, nargs, name, method, lax, obj, fsym, valp, symp,
|
|||||||
/* Consider each candidate in turn */
|
/* Consider each candidate in turn */
|
||||||
for (ix = 0; ix < num_fns; ix++)
|
for (ix = 0; ix < num_fns; ix++)
|
||||||
{
|
{
|
||||||
/* Number of parameters for current candidate */
|
if (method)
|
||||||
nparms = method ? TYPE_NFIELDS (fns_ptr[ix].type)
|
{
|
||||||
: TYPE_NFIELDS (SYMBOL_TYPE (oload_syms[ix]));
|
/* For static member functions, we won't have a this pointer, but nothing
|
||||||
|
else seems to handle them right now, so we just pretend ourselves */
|
||||||
|
nparms=0;
|
||||||
|
|
||||||
|
if (TYPE_FN_FIELD_ARGS(fns_ptr,ix))
|
||||||
|
{
|
||||||
|
while (TYPE_CODE(TYPE_FN_FIELD_ARGS(fns_ptr,ix)[nparms]) != TYPE_CODE_VOID)
|
||||||
|
nparms++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* If it's not a method, this is the proper place */
|
||||||
|
nparms=TYPE_NFIELDS(SYMBOL_TYPE(oload_syms[ix]));
|
||||||
|
}
|
||||||
|
|
||||||
/* Prepare array of parameter types */
|
/* Prepare array of parameter types */
|
||||||
parm_types = (struct type **) xmalloc (nparms * (sizeof (struct type *)));
|
parm_types = (struct type **) xmalloc (nparms * (sizeof (struct type *)));
|
||||||
for (jj = 0; jj < nparms; jj++)
|
for (jj = 0; jj < nparms; jj++)
|
||||||
parm_types[jj] = method ? TYPE_FIELD_TYPE (fns_ptr[ix].type, jj)
|
parm_types[jj] = method ? (TYPE_FN_FIELD_ARGS(fns_ptr,ix)[jj])
|
||||||
: TYPE_FIELD_TYPE (SYMBOL_TYPE (oload_syms[ix]), jj);
|
: TYPE_FIELD_TYPE (SYMBOL_TYPE (oload_syms[ix]), jj);
|
||||||
|
|
||||||
/* Compare parameter types to supplied argument types */
|
/* Compare parameter types to supplied argument types */
|
||||||
@ -2830,12 +2867,16 @@ find_overload_match (arg_types, nargs, name, method, lax, obj, fsym, valp, symp,
|
|||||||
printf ("Overloaded method instance %s, # of parms %d\n", fns_ptr[ix].physname, nparms);
|
printf ("Overloaded method instance %s, # of parms %d\n", fns_ptr[ix].physname, nparms);
|
||||||
else
|
else
|
||||||
printf ("Overloaded function instance %s # of parms %d\n", SYMBOL_DEMANGLED_NAME (oload_syms[ix]), nparms);
|
printf ("Overloaded function instance %s # of parms %d\n", SYMBOL_DEMANGLED_NAME (oload_syms[ix]), nparms);
|
||||||
for (jj = 0; jj <= nargs; jj++)
|
for (jj = 0; jj < nargs; jj++)
|
||||||
printf ("...Badness @ %d : %d\n", jj, bv->rank[jj]);
|
printf ("...Badness @ %d : %d\n", jj, bv->rank[jj]);
|
||||||
printf ("Overload resolution champion is %d, ambiguous? %d\n", oload_champ, oload_ambiguous);
|
printf ("Overload resolution champion is %d, ambiguous? %d\n", oload_champ, oload_ambiguous);
|
||||||
#endif
|
#endif
|
||||||
} /* end loop over all candidates */
|
} /* end loop over all candidates */
|
||||||
|
|
||||||
|
/* Seems to be a better idea to just pick one if they have the exact same goodness.
|
||||||
|
* This is because there is no way to differentiate based on return type, which we need
|
||||||
|
* to in cases like overloads of .begin() <It's both const and non-const> */
|
||||||
|
#if 0
|
||||||
if (oload_ambiguous)
|
if (oload_ambiguous)
|
||||||
{
|
{
|
||||||
if (method)
|
if (method)
|
||||||
@ -2847,6 +2888,7 @@ find_overload_match (arg_types, nargs, name, method, lax, obj, fsym, valp, symp,
|
|||||||
error ("Cannot resolve overloaded function %s to unique instance; disambiguate by specifying function signature",
|
error ("Cannot resolve overloaded function %s to unique instance; disambiguate by specifying function signature",
|
||||||
func_name);
|
func_name);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Check how bad the best match is */
|
/* Check how bad the best match is */
|
||||||
for (ix = 1; ix <= nargs; ix++)
|
for (ix = 1; ix <= nargs; ix++)
|
||||||
@ -2943,7 +2985,7 @@ check_field_in (type, name)
|
|||||||
for (i = TYPE_NFIELDS (type) - 1; i >= TYPE_N_BASECLASSES (type); i--)
|
for (i = TYPE_NFIELDS (type) - 1; i >= TYPE_N_BASECLASSES (type); i--)
|
||||||
{
|
{
|
||||||
char *t_field_name = TYPE_FIELD_NAME (type, i);
|
char *t_field_name = TYPE_FIELD_NAME (type, i);
|
||||||
if (t_field_name && STREQ (t_field_name, name))
|
if (t_field_name && STREQ_IW (t_field_name, name))
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2960,7 +3002,7 @@ check_field_in (type, name)
|
|||||||
|
|
||||||
for (i = TYPE_NFN_FIELDS (type) - 1; i >= 0; --i)
|
for (i = TYPE_NFN_FIELDS (type) - 1; i >= 0; --i)
|
||||||
{
|
{
|
||||||
if (STREQ (TYPE_FN_FIELDLIST_NAME (type, i), name))
|
if (STREQ_IW (TYPE_FN_FIELDLIST_NAME (type, i), name))
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3161,7 +3203,7 @@ value_struct_elt_for_reference (domain, offset, curtype, name, intype)
|
|||||||
* USING_ENC is the flag that distinguishes the two cases.
|
* USING_ENC is the flag that distinguishes the two cases.
|
||||||
* If it is 1, then the offset is for the enclosing object,
|
* If it is 1, then the offset is for the enclosing object,
|
||||||
* otherwise for the embedded object.
|
* otherwise for the embedded object.
|
||||||
*
|
*
|
||||||
* This currently works only for RTTI information generated
|
* This currently works only for RTTI information generated
|
||||||
* by the HP ANSI C++ compiler (aCC). g++ today (1997-06-10)
|
* by the HP ANSI C++ compiler (aCC). g++ today (1997-06-10)
|
||||||
* does not appear to support RTTI. This function returns a
|
* does not appear to support RTTI. This function returns a
|
||||||
@ -3481,8 +3523,8 @@ value_slice (array, lowbound, length)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* We should set the address, bitssize, and bitspos, so the clice
|
/* We should set the address, bitssize, and bitspos, so the clice
|
||||||
can be used on the LHS, but that may require extensions to
|
can be used on the LHS, but that may require extensions to
|
||||||
value_assign. For now, just leave as a non_lval. FIXME. */
|
value_assign. For now, just leave as a non_lval. FIXME. */
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -3522,10 +3564,10 @@ varying_to_slice (varray)
|
|||||||
return value_slice (value_primitive_field (varray, 0, 1, vtype), 0, length);
|
return value_slice (value_primitive_field (varray, 0, 1, vtype), 0, length);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Create a value for a FORTRAN complex number. Currently most of
|
/* Create a value for a FORTRAN complex number. Currently most of
|
||||||
the time values are coerced to COMPLEX*16 (i.e. a complex number
|
the time values are coerced to COMPLEX*16 (i.e. a complex number
|
||||||
composed of 2 doubles. This really should be a smarter routine
|
composed of 2 doubles. This really should be a smarter routine
|
||||||
that figures out precision inteligently as opposed to assuming
|
that figures out precision inteligently as opposed to assuming
|
||||||
doubles. FIXME: fmb */
|
doubles. FIXME: fmb */
|
||||||
|
|
||||||
value_ptr
|
value_ptr
|
||||||
|
Reference in New Issue
Block a user