From mboxrd@z Thu Jan 1 00:00:00 1970 From: Fernando Nasser To: David Taylor Cc: gdb-patches@sources.redhat.com, insight@sources.redhat.com Subject: Re: David Taylor: [RFA] insight gdb_stdlog bug Date: Tue, 02 Jan 2001 11:23:00 -0000 Message-id: <3A522A80.9EFFFEC5@redhat.com> References: <200101021917.OAA01413@texas.cygnus.com> X-SW-Source: 2001-01/msg00002.html David Taylor wrote: > > Just a ping -- I never saw a response to this. > > I believe that I need approvals from: > > . ezannoni for the change to main.c > Elena is on vacations. I believe your change fall in the "obvious simple fix" category though. > . spolk (backup: fnasser, jingham) for the change to gdbtk-hooks.c The gdbtk part is approved. Please note that the ChangeLog to use now is the one at gdb/gdbtk > > . some blanket write priv's maintainer for the tui-file.c change (my > understanding is that Jimmy Guo has left HP and has no interest in > continuing GDB TUI maintainership -- please correct me if you know > otherwise). > The tui-file.c is still actively used by GDB (there is a cleanup item in the TODO file to stop using it), so we are maintaining it. I guess your change here is another simple fix one. Fernando > ------- Forwarded Message > > To: insight@sources.redhat.com > cc: gdb-patches@sourceware.cygnus.com > Subject: [RFA] insight gdb_stdlog bug > Date: Wed, 20 Dec 2000 17:52:45 -0500 > From: David Taylor > > When GDBTK_TO_RESULT is set, insight gobbles all output written to > gdb_stdlog. But, the stuff written to gdb_stdlog isn't meant to be > parsed by insight -- it's meant to be read by a person. > > While it might be desired -- when GDBTK_TO_RESULT is not set -- that > gdb_stdlog go the same place as gdb_stdout, it cannot have the same > pointer value as gdb_stdout or the code won't be able to distinguish > output meant for gdb_stdout vs output meant for gdb_stdlog when > GDBTK_TO_RESULT is set. > > The following patch fixes that. (The result is that output written to > gdb_stdlog appears in the insight console window if it is active.) > > ChangeLog entries (3 separate ChangeLog files): > > * main.c (captured_main): Initialize gdb_stdlog to a copy of > gdb_stdout rather than to gdb_stdout, so that code can distinguish > them. > > * tui/tui-file.c (tui_file_fputs): Handle gdb_stdlog the same > as gdb_stdout. > > * gdbtk/generic/gdbtk-hooks.c (gdbtk_fputs): Distinguish between > gdb_stdlog and gdb_stdout. > > Index: main.c > =================================================================== > RCS file: /cvs/cvsfiles/devo/gdb/main.c,v > retrieving revision 1.207.12.1 > diff -c -r1.207.12.1 main.c > *** main.c 2000/11/13 02:10:59 1.207.12.1 > - --- main.c 2000/12/20 22:23:25 > *************** > *** 203,209 **** > within its own _initialize function. */ > gdb_stdout = tui_fileopen (stdout); > gdb_stderr = tui_fileopen (stderr); > ! gdb_stdlog = gdb_stdout; /* for moment */ > gdb_stdtarg = gdb_stderr; /* for moment */ > #else > gdb_stdout = stdio_fileopen (stdout); > - --- 203,209 ---- > within its own _initialize function. */ > gdb_stdout = tui_fileopen (stdout); > gdb_stderr = tui_fileopen (stderr); > ! gdb_stdlog = tui_fileopen (stdout); /* for moment */ > gdb_stdtarg = gdb_stderr; /* for moment */ > #else > gdb_stdout = stdio_fileopen (stdout); > Index: tui/tui-file.c > =================================================================== > RCS file: /cvs/cvsfiles/devo/gdb/tui/tui-file.c,v > retrieving revision 1.5 > diff -c -r1.5 tui-file.c > *** tui-file.c 2000/07/30 01:50:07 1.5 > - --- tui-file.c 2000/12/20 22:23:25 > *************** > *** 181,187 **** > also tui_file_flush(). */ > if (fputs_unfiltered_hook > && (file == gdb_stdout > ! || file == gdb_stderr)) > fputs_unfiltered_hook (linebuffer, file); > else > { > - --- 181,188 ---- > also tui_file_flush(). */ > if (fputs_unfiltered_hook > && (file == gdb_stdout > ! || file == gdb_stderr > ! || file == gdb_stdlog)) > fputs_unfiltered_hook (linebuffer, file); > else > { > Index: gdbtk/generic/gdbtk-hooks.c > =================================================================== > RCS file: /cvs/cvsfiles/devo/gdb/gdbtk/generic/gdbtk-hooks.c,v > retrieving revision 1.7 > diff -c -r1.7 gdbtk-hooks.c > *** gdbtk-hooks.c 2000/10/23 22:42:01 1.7 > - --- gdbtk-hooks.c 2000/12/20 22:23:29 > *************** > *** 250,256 **** > > if (result_ptr != NULL) > { > ! if (result_ptr->flags & GDBTK_TO_RESULT) > { > if (result_ptr->flags & GDBTK_MAKES_LIST) > Tcl_ListObjAppendElement (NULL, result_ptr->obj_ptr, > - --- 250,258 ---- > > if (result_ptr != NULL) > { > ! if (stream == gdb_stdlog) > ! gdbtk_two_elem_cmd ("gdbtk_tcl_fputs", (char *) ptr); > ! else if (result_ptr->flags & GDBTK_TO_RESULT) > { > if (result_ptr->flags & GDBTK_MAKES_LIST) > Tcl_ListObjAppendElement (NULL, result_ptr->obj_ptr, > > ------- End of Forwarded Message >From msnyder@redhat.com Tue Jan 02 11:40:00 2001 From: Michael Snyder To: Mark Kettenis Cc: gdb-patches@sources.redhat.com Subject: Re: [PATCH] Fix setting function return values for x86 targets Date: Tue, 02 Jan 2001 11:40:00 -0000 Message-id: <3A522E9E.6D99@redhat.com> References: <200012221054.eBMAsWt04034@debye.wins.uva.nl> X-SW-Source: 2001-01/msg00003.html Content-length: 550 Mark Kettenis wrote: > > FYI, this patch fixes some problems uncovered by Michaels new > gdb.base/return2.exp tests for the x86. STORE_RETURN_VALUE didn't > handle long long's and floating point values correctly. There are > still some problems with floating point values (similar to the > problems with extracting return values, such that some of the new > tests still fail. I'll try to come up with a fix, which should be > possible for native GDB (or x86 x x86 cross). > > Tested on i586-pc-linux-gnu & checked in. Looks good. Thanks Mark. >From msnyder@redhat.com Tue Jan 02 12:22:00 2001 From: Michael Snyder To: gdb-patches@sources.redhat.com Subject: Re: [PATCH]: New default method for multi-arch Date: Tue, 02 Jan 2001 12:22:00 -0000 Message-id: <3A52388A.2CFE48DA@redhat.com> References: <3A41597F.18314006@redhat.com> X-SW-Source: 2001-01/msg00004.html Content-length: 8371 Committed. Michael Snyder wrote: > > This is an example of a multi-arched method that should have a default > impl. > (because many architectures do it the same way). > > ------------------------------------------------------------------------ > 2000-12-20 Michael Snyder > > * arch-utils.c (default_frame_address): New function. Default > implementation of frame_args_address and frame_locals_address. > * arch-utils.h (default_frame_address): Export. > * d10v-tdep.c (d10v_gdbarch_init): Use default_frame_address. > (d10v_frame_args_address, d10v_frame_locals_address): Delete. > * sh-tdep.c (sh_gdbarch_init): Use default_frame_address. > (sh_frame_args_address, sh_frame_locals_address): Delete. > * sparc-tdep.c (sparc_gdbarch_init): Use default_frame_address. > (sparc_frame_address): Delete. > > Index: arch-utils.c > =================================================================== > RCS file: /cvs/src/src/gdb/arch-utils.c,v > retrieving revision 1.18 > diff -c -3 -p -r1.18 arch-utils.c > *** arch-utils.c 2000/12/15 01:01:45 1.18 > --- arch-utils.c 2000/12/20 23:44:23 > *************** no_op_reg_to_regnum (int reg) > *** 239,244 **** > --- 239,251 ---- > return reg; > } > > + /* For use by frame_args_address and frame_locals_address. */ > + CORE_ADDR > + default_frame_address (struct frame_info *fi) > + { > + return fi->frame; > + } > + > /* Functions to manipulate the endianness of the target. */ > > #ifdef TARGET_BYTE_ORDER_SELECTABLE > Index: arch-utils.h > =================================================================== > RCS file: /cvs/src/src/gdb/arch-utils.h,v > retrieving revision 1.11 > diff -c -3 -p -r1.11 arch-utils.h > *** arch-utils.h 2000/12/04 04:01:15 1.11 > --- arch-utils.h 2000/12/20 23:44:23 > *************** extern CORE_ADDR default_convert_from_fu > *** 101,104 **** > --- 101,109 ---- > > extern int no_op_reg_to_regnum (int reg); > > + /* Default frame_args_address and frame_locals_address. */ > + > + extern CORE_ADDR default_frame_address (struct frame_info *); > + > + > #endif > Index: d10v-tdep.c > =================================================================== > RCS file: /cvs/src/src/gdb/d10v-tdep.c,v > retrieving revision 1.13 > diff -c -3 -p -r1.13 d10v-tdep.c > *** d10v-tdep.c 2000/12/15 01:01:46 1.13 > --- d10v-tdep.c 2000/12/20 23:44:23 > *************** d10v_frame_saved_pc (struct frame_info * > *** 438,455 **** > return ((frame)->extra_info->return_pc); > } > > - CORE_ADDR > - d10v_frame_args_address (struct frame_info *fi) > - { > - return (fi)->frame; > - } > - > - CORE_ADDR > - d10v_frame_locals_address (struct frame_info *fi) > - { > - return (fi)->frame; > - } > - > /* Immediately after a function call, return the saved pc. We can't > use frame->return_pc beause that is determined by reading R13 off > the stack and that may not be written yet. */ > --- 438,443 ---- > *************** d10v_gdbarch_init (struct gdbarch_info i > *** 1592,1599 **** > set_gdbarch_frame_chain (gdbarch, d10v_frame_chain); > set_gdbarch_frame_chain_valid (gdbarch, d10v_frame_chain_valid); > set_gdbarch_frame_saved_pc (gdbarch, d10v_frame_saved_pc); > ! set_gdbarch_frame_args_address (gdbarch, d10v_frame_args_address); > ! set_gdbarch_frame_locals_address (gdbarch, d10v_frame_locals_address); > set_gdbarch_saved_pc_after_call (gdbarch, d10v_saved_pc_after_call); > set_gdbarch_frame_num_args (gdbarch, frame_num_args_unknown); > set_gdbarch_stack_align (gdbarch, d10v_stack_align); > --- 1580,1587 ---- > set_gdbarch_frame_chain (gdbarch, d10v_frame_chain); > set_gdbarch_frame_chain_valid (gdbarch, d10v_frame_chain_valid); > set_gdbarch_frame_saved_pc (gdbarch, d10v_frame_saved_pc); > ! set_gdbarch_frame_args_address (gdbarch, default_frame_address); > ! set_gdbarch_frame_locals_address (gdbarch, default_frame_address); > set_gdbarch_saved_pc_after_call (gdbarch, d10v_saved_pc_after_call); > set_gdbarch_frame_num_args (gdbarch, frame_num_args_unknown); > set_gdbarch_stack_align (gdbarch, d10v_stack_align); > Index: sh-tdep.c > =================================================================== > RCS file: /cvs/src/src/gdb/sh-tdep.c,v > retrieving revision 1.25 > diff -c -3 -p -r1.25 sh-tdep.c > *** sh-tdep.c 2000/12/19 23:20:45 1.25 > --- sh-tdep.c 2000/12/20 23:44:23 > *************** sh_frame_saved_pc (struct frame_info *fr > *** 850,867 **** > return ((frame)->extra_info->return_pc); > } > > - static CORE_ADDR > - sh_frame_args_address (struct frame_info *fi) > - { > - return (fi)->frame; > - } > - > - static CORE_ADDR > - sh_frame_locals_address (struct frame_info *fi) > - { > - return (fi)->frame; > - } > - > /* Discard from the stack the innermost frame, > restoring all saved registers. */ > static void > --- 850,855 ---- > *************** sh_gdbarch_init (struct gdbarch_info inf > *** 2116,2123 **** > set_gdbarch_frame_chain (gdbarch, sh_frame_chain); > set_gdbarch_frame_chain_valid (gdbarch, generic_file_frame_chain_valid); > set_gdbarch_frame_saved_pc (gdbarch, sh_frame_saved_pc); > ! set_gdbarch_frame_args_address (gdbarch, sh_frame_args_address); > ! set_gdbarch_frame_locals_address (gdbarch, sh_frame_locals_address); > set_gdbarch_saved_pc_after_call (gdbarch, sh_saved_pc_after_call); > set_gdbarch_frame_num_args (gdbarch, frame_num_args_unknown); > set_gdbarch_believe_pcc_promotion (gdbarch, 1); > --- 2104,2111 ---- > set_gdbarch_frame_chain (gdbarch, sh_frame_chain); > set_gdbarch_frame_chain_valid (gdbarch, generic_file_frame_chain_valid); > set_gdbarch_frame_saved_pc (gdbarch, sh_frame_saved_pc); > ! set_gdbarch_frame_args_address (gdbarch, default_frame_address); > ! set_gdbarch_frame_locals_address (gdbarch, default_frame_address); > set_gdbarch_saved_pc_after_call (gdbarch, sh_saved_pc_after_call); > set_gdbarch_frame_num_args (gdbarch, frame_num_args_unknown); > set_gdbarch_believe_pcc_promotion (gdbarch, 1); > Index: sparc-tdep.c > =================================================================== > RCS file: /cvs/src/src/gdb/sparc-tdep.c,v > retrieving revision 1.9 > diff -c -3 -p -r1.9 sparc-tdep.c > *** sparc-tdep.c 2000/10/24 20:05:35 1.9 > --- sparc-tdep.c 2000/12/20 23:44:24 > *************** sparc_frame_init_saved_regs (struct fram > *** 2810,2823 **** > { /* no-op */ > } > > - /* The frame address: stored in the 'frame' field of the frame_info. */ > - > - static CORE_ADDR > - sparc_frame_address (struct frame_info *fi) > - { > - return fi->frame; > - } > - > /* gdbarch fix call dummy: > All this function does is rearrange the arguments before calling > sparc_fix_call_dummy (which does the real work). */ > --- 2810,2815 ---- > *************** sparc_gdbarch_init (struct gdbarch_info > *** 2957,2966 **** > set_gdbarch_float_bit (gdbarch, 4 * TARGET_CHAR_BIT); > set_gdbarch_fp_regnum (gdbarch, SPARC_FP_REGNUM); > set_gdbarch_fp0_regnum (gdbarch, SPARC_FP0_REGNUM); > ! set_gdbarch_frame_args_address (gdbarch, sparc_frame_address); > set_gdbarch_frame_chain (gdbarch, sparc_frame_chain); > set_gdbarch_frame_init_saved_regs (gdbarch, sparc_frame_init_saved_regs); > ! set_gdbarch_frame_locals_address (gdbarch, sparc_frame_address); > set_gdbarch_frame_num_args (gdbarch, frame_num_args_unknown); > set_gdbarch_frame_saved_pc (gdbarch, sparc_frame_saved_pc); > set_gdbarch_frameless_function_invocation (gdbarch, > --- 2949,2958 ---- > set_gdbarch_float_bit (gdbarch, 4 * TARGET_CHAR_BIT); > set_gdbarch_fp_regnum (gdbarch, SPARC_FP_REGNUM); > set_gdbarch_fp0_regnum (gdbarch, SPARC_FP0_REGNUM); > ! set_gdbarch_frame_args_address (gdbarch, default_frame_address); > set_gdbarch_frame_chain (gdbarch, sparc_frame_chain); > set_gdbarch_frame_init_saved_regs (gdbarch, sparc_frame_init_saved_regs); > ! set_gdbarch_frame_locals_address (gdbarch, default_frame_address); > set_gdbarch_frame_num_args (gdbarch, frame_num_args_unknown); > set_gdbarch_frame_saved_pc (gdbarch, sparc_frame_saved_pc); > set_gdbarch_frameless_function_invocation (gdbarch, >From msnyder@cygnus.com Tue Jan 02 12:32:00 2001 From: Michael Snyder To: gdb-patches@sources.redhat.com Subject: [PATCH] fix comment typo in sparc-tdep.c Date: Tue, 02 Jan 2001 12:32:00 -0000 Message-id: <200101022032.MAA10139@cleaver.cygnus.com> X-SW-Source: 2001-01/msg00005.html Content-length: 951 2001-01-02 Michael Snyder * sparc-tdep.c (sparc-frame-chain): Fix typo in comment. Index: sparc-tdep.c =================================================================== RCS file: /cvs/src/src/gdb/sparc-tdep.c,v retrieving revision 1.10 diff -c -3 -p -r1.10 sparc-tdep.c *** sparc-tdep.c 2001/01/02 20:21:53 1.10 --- sparc-tdep.c 2001/01/02 20:31:44 *************** CORE_ADDR *** 425,431 **** sparc_frame_chain (struct frame_info *frame) { /* Value that will cause FRAME_CHAIN_VALID to not worry about the chain ! value. If it realy is zero, we detect it later in sparc_init_prev_frame. */ return (CORE_ADDR) 1; } --- 425,431 ---- sparc_frame_chain (struct frame_info *frame) { /* Value that will cause FRAME_CHAIN_VALID to not worry about the chain ! value. If it really is zero, we detect it later in sparc_init_prev_frame. */ return (CORE_ADDR) 1; } >From msnyder@cygnus.com Tue Jan 02 12:36:00 2001 From: Michael Snyder To: gdb-patches@sources.redhat.com Subject: [PATCH] Update copyright notice. Date: Tue, 02 Jan 2001 12:36:00 -0000 Message-id: <200101022036.MAA10155@cleaver.cygnus.com> X-SW-Source: 2001-01/msg00006.html Content-length: 764 Index: sparc-tdep.c =================================================================== RCS file: /cvs/src/src/gdb/sparc-tdep.c,v retrieving revision 1.11 diff -c -3 -p -r1.11 sparc-tdep.c *** sparc-tdep.c 2001/01/02 20:32:50 1.11 --- sparc-tdep.c 2001/01/02 20:36:04 *************** *** 1,6 **** /* Target-dependent code for the SPARC for GDB, the GNU debugger. ! Copyright 1986, 1987, 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997 ! Free Software Foundation, Inc. This file is part of GDB. --- 1,6 ---- /* Target-dependent code for the SPARC for GDB, the GNU debugger. ! Copyright 1986, 1987, 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997, ! 1998, 1999, 2000, 2001 Free Software Foundation, Inc. This file is part of GDB. >From fche@redhat.com Tue Jan 02 13:31:00 2001 From: fche@redhat.com (Frank Ch. Eigler) To: Michael Snyder Cc: gdb-patches@sources.redhat.com Subject: Re: [PATCH] Update copyright notice. Date: Tue, 02 Jan 2001 13:31:00 -0000 Message-id: References: <200101022036.MAA10155@cleaver.cygnus.com> X-SW-Source: 2001-01/msg00007.html Content-length: 326 msnyder wrote: : ! Copyright 1986, 1987, 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997, : ! 1998, 1999, 2000, 2001 Free Software Foundation, Inc. Will the decree that requires this eyesore instead of the equivalent # ! Copyright 1986-1987, 1989, 1991-2001 Free Software Foundation, Inc. ever be lifted? - FChE >From msnyder@redhat.com Tue Jan 02 15:52:00 2001 From: Michael Snyder To: Elena Zannoni Cc: gdb-patches@sources.redhat.com, ezannoni@redhat.com Subject: Re: [RFA]: Fix for sh function return value Date: Tue, 02 Jan 2001 15:52:00 -0000 Message-id: <3A52699E.2C3D@redhat.com> References: <3A3E4B9A.4B4CA060@redhat.com> <14910.21011.584602.600871@kwikemart.cygnus.com> X-SW-Source: 2001-01/msg00008.html Content-length: 2515 Elena Zannoni wrote: > > Thanks Michael. > Go ahead. Committed. > > Elena > > Michael Snyder writes: > > This will fix two testsuite failures in return2.exp, wherein the > > function's return type is smaller than the register size.2000-12-18 Michael Snyder > > > > * sh-tdep.c (sh_extract_return_value): Allow for small return type. > > (sh_sh4_extract_return_value): Call sh_extract_return_value > > for non-float types. > > > > Index: sh-tdep.c > > =================================================================== > > RCS file: /cvs/cvsfiles/devo/gdb/sh-tdep.c,v > > retrieving revision 2.71 > > diff -c -3 -p -r2.71 sh-tdep.c > > *** sh-tdep.c 2000/12/18 05:32:59 2.71 > > --- sh-tdep.c 2000/12/18 17:33:32 > > *************** sh_extract_return_value (struct type *ty > > *** 1246,1253 **** > > static void > > sh_default_store_return_value (struct type *type, char *valbuf) > > { > > ! write_register_bytes (REGISTER_BYTE (0), > > ! valbuf, TYPE_LENGTH (type)); > > } > > > > static void > > --- 1246,1263 ---- > > static void > > sh_default_store_return_value (struct type *type, char *valbuf) > > { > > ! char buf[32]; /* more than enough... */ > > ! > > ! if (TYPE_LENGTH (type) < REGISTER_RAW_SIZE (0)) > > ! { > > ! /* Add leading zeros to the value. */ > > ! memset (buf, 0, REGISTER_RAW_SIZE (0)); > > ! memcpy (buf + REGISTER_RAW_SIZE (0) - TYPE_LENGTH (type), > > ! valbuf, TYPE_LENGTH (type)); > > ! write_register_bytes (REGISTER_BYTE (0), buf, REGISTER_RAW_SIZE (0)); > > ! } > > ! else > > ! write_register_bytes (REGISTER_BYTE (0), valbuf, TYPE_LENGTH (type)); > > } > > > > static void > > *************** sh3e_sh4_store_return_value (struct type > > *** 1257,1264 **** > > write_register_bytes (REGISTER_BYTE (FP0_REGNUM), > > valbuf, TYPE_LENGTH (type)); > > else > > ! write_register_bytes (REGISTER_BYTE (0), > > ! valbuf, TYPE_LENGTH (type)); > > } > > > > /* Print the registers in a form similar to the E7000 */ > > --- 1267,1273 ---- > > write_register_bytes (REGISTER_BYTE (FP0_REGNUM), > > valbuf, TYPE_LENGTH (type)); > > else > > ! sh_default_store_return_value (type, valbuf); > > } > > > > /* Print the registers in a form similar to the E7000 */ >From fnasser@redhat.com Tue Jan 02 21:45:00 2001 From: Fernando Nasser To: gdb-patches@sources.redhat.com Subject: Some new files in the gdbtk/library subdirectories; use cvs -d Date: Tue, 02 Jan 2001 21:45:00 -0000 Message-id: <3A52BC39.D8342633@redhat.com> X-SW-Source: 2001-01/msg00009.html Content-length: 354 In case you do not follow the GUI list, there are a few new files in the gdb/gdbtk/library subdirectory. If you use the Insight GUI, please make sure you use cvs -d in that directory to grab the new files. -- Fernando Nasser Red Hat Canada Ltd. E-Mail: fnasser@redhat.com 2323 Yonge Street, Suite #300 Toronto, Ontario M4P 2C9 >From spolk@redhat.com Wed Jan 03 11:38:00 2001 From: Syd Polk To: Fernando Nasser , gdb-patches@sources.redhat.com Subject: Re: Some new files in the gdbtk/library subdirectories; use cvs -d Date: Wed, 03 Jan 2001 11:38:00 -0000 Message-id: <4.2.0.58.20010103113732.019d2b10@pop.cygnus.com> References: <3A52BC39.D8342633@redhat.com> X-SW-Source: 2001-01/msg00010.html Content-length: 473 At 12:44 AM 1/3/01 -0500, Fernando Nasser wrote: >In case you do not follow the GUI list, there are a few new files in the >gdb/gdbtk/library subdirectory. > >If you use the Insight GUI, please make sure you use cvs -d in that >directory to grab the new files. This should only be necessary if there are new directories. cvs update should get all new files in existing directories. Syd Polk spolk@redhat.com Engineering Manager +1 415 777 9810 x 241 Red Hat, Inc.