Tue Jan 31 12:56:01 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * values.c (modify_field): Changed test for endianness to assign to integer and reference character (so that all bits would be defined). Mon Jan 30 11:41:21 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * news-dep.c: Deleted inclusion of fcntl.h; just duplicates stuff found in sys/file.h. * i386-dep.c: Included default definition of N_SET_MAGIC for COFF_FORMAT. * config.gdb: Added checks for several different operating systems. * coffread.c (read_struct_type): Put in a flag variable so that one could tell when you got to the end of a structure. * sun3-dep.c (core_file_command): Changed #ifdef based on SUNOS4 to ifdef based on FPU. * infrun.c (restore_inferior_status): Changed error message to "unable to restore previously selected frame". * dbxread.c (read_dbx_symtab): Used intermediate variable in error message reporting a bad symbol type. (scan_file_globals, read_ofile_symtab, read_addl_syms): Data type of "type" changed to unsigned char (which is what it is). * i386-dep.c: Removed define of COFF_FORMAT if AOUTHDR is defined. Removed define of a_magic to magic (taken care of by N_MAGIC). (core_file_command): Zero'd core_aouthdr instead of setting magic to zero. * i386-pinsn.c: Changed jcxz == jCcxz in jump table. (putop): Added a case for 'C'. (OP_J): Added code to handle possible masking of PC value on certain kinds of data. m-i386gas.h: Moved COFF_ENCAPSULATE to before inclusion of m-i386.h and defined NAMES_HAVE_UNDERSCORE. * coffread.c (unrecrod_misc_function, read_coff_symtab): Added symbol number on which error occured to error output. Fri Jan 27 11:55:04 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * Makefile: Removed init.c in make clean. Removed it without -f and with leading - in make ?gdb. Thu Jan 26 15:08:03 1989 Randall Smith (randy at gluteus.ai.mit.edu) Changes to get it to work on gould NP1. * dbxread.c (read_dbx_symtab): Included cases for N_NBDATA and N_NBBSS. (psymtab_to_symtab): Changed declaration of hdr to DECLARE_FILE_HEADERS. Changed access to use STRING_TABLE_SIZE and SYMBOL_TABLE_SIZE. * gld-pinsn.c (findframe): Added declaration of framechain() as FRAME_ADDR. * coffread.c (read_coff_symtab): Avoided treating typedefs as external symbol definitions. Wed Jan 25 14:45:43 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * Makefile: Removed reference to alloca.c. If they need it, they can pull alloca.o from the gnu-emacs directory. * version.c, gdb.texinfo: Updated version to 3.1 (jumping the gun a bit so that I won't forget when I release). * m-sun2.h, m-sun2os2.h, m-sun3os4.h, config.gdb: Modified code so that default includes new sun core, ptrace, and attach-detach. Added defaults for sun 2 os 2. Modifications to reset stack limit back to what it used to be just before exec. All mods inside of #ifdef SET_STACK_LIMIT_HUGE. * main.c: Added global variable original_stack_limit. (main): Set original_stack_limit to original stack limit. * inflow.c: Added inclusion of necessary files and external reference to original_stack_limit. (create_inferior): Reset stack limit to original_stack_limit. * dbxread.c (read_dbx_symtab): Killed PROFILE_SYMBOLS ifdef. * sparc-dep.c (isabranch): Multiplied offset by 4 before adding it to addr to get target. * Makefile: Added definition of SHELL to Makefile. * m-sun2os4.h: Added code to define NEW_SUN_PTRACE, NEW_SUN_CORE, and ATTACH_DETACH. * sun3-dep.c: Added code to avoid fp regs if we are on a sun2. Tue Jan 24 17:59:14 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * dbxread.c (read_array_type): Added function. (read_type): Added call to above instead of inline code. * Makefile: Added ${GNU_MALLOC} to the list of dependencies for the executables. Mon Jan 23 15:08:51 1989 Randall Smith (randy at plantaris.ai.mit.edu) * gdb.texinfo: Added paragraph to summary describing languages with which gdb can be run. Also added descriptions of the "info-methods" and "add-file" commands. * symseg.h: Commented a range type as having TYPE_TARGET_TYPE pointing at the containing type for the range (often int). * dbxread.c (read_range_type): Added code to do actual range types if they are defined. Assumed that the length of a range type is the length of the target type; this is a lie, but will do until somebody gets back to me as to what these silly dbx symbols mean. * dbxread.c (read_range_type): Added code to be more picky about recognizing builtins as range types, to treat types defined as subranges of themselves to be subranges of int, and to recognize the char type idiom from dbx as a special case. Sun Jan 22 01:00:13 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * m-vax.h: Removed definition of FUNCTION_HAS_FRAME_POINTER. * blockframe.c (get_prev_frame_info): Removed default definition and use of above. Instead conditionalized checking for leaf nodes on FUNCTION_START_OFFSET (see comment in code). Sat Jan 21 16:59:19 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * dbxread.c (read_range_type): Fixed assumption that integer was always type 1. * gdb.texinfo: Fixed spelling mistake and added a note in the running section making it clear that users may invoke subroutines directly from gdb. * blockframe.c: Setup a default definition for the macro FUNCTION_HAS_FRAME_POINTER. (get_prev_frame_info): Used this macro instead of checking SKIP_PROLOGUE directly. * m-vax.h: Overroad definition; all functions on the vax have frame pointers. Fri Jan 20 12:25:35 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * core.c: Added default definition of N_MAGIC for COFF_FORMAT. * xgdb.c: Installed a fix to keep the thing from dying when there isn't any frame selected. * core.c: Made a change for the UMAX system; needs a different file included if using that core format. * Makefile: Deleted duplicate obstack.h in dbxread.c dependency. * munch: Modified (much simpler) to cover (I hope) all cases. * utils.c (save_cleanups, restore_cleanups): Added functions to allow you to push and pop the chain of cleanups to be done. * defs.h: Declared the new functions. * main.c (catch_errors): Made sure that the only cleanups which would be done were the ones put on the chain *after* the current location. * m-*.h (FRAME_CHAIN_VALID): Removed check on pc in the current frame being valid. * blockframe.c (get_prev_frame_info): Made the assumption that if a frame's pc value was within the first object file (presumed to be /lib/crt0.o), that we shouldn't go any higher. * infrun.c (wait_for_inferior): Do *not* execute check for stop pc at step_resume_break if we are proceeding over a breakpoint (ie. if trap_expected != 0). * Makefile: Added -g to LDFLAGS. * m-news.h (POP_FRAME) Fixed typo. * printcmd.c (print_frame_args): Modified to print out register params in order by .stabs entry, not by register number. * sparc-opcode.h: Changed declaration of (struct arith_imm_fmt).simm to be signed (as per architecture manual). * sparc-pinsn.c (fprint_addr1, print_insn): Forced a cast to an int, so that we really would get signed behaivior (default for sun cc is unsigned). * i386-dep.c (i386_get_frame_setup): Replace function with new function provided by pace to fix bug in recognizing prologue. Thu Jan 19 11:01:22 1989 Randall Smith (randy at plantaris.ai.mit.edu) * infcmd.c (run_command): Changed error message to "Program not restarted." * value.h: Changed "frame" field in value structure to be a FRAME_ADDR (actually CORE_ADDR) so that it could survive across calls. * m-sun.h (FRAME_FIND_SAVED_REGS): Fixed a typo. * value.h: Added lval: "lval_reg_frame_relative" to indicate a register that must be interpeted relative to a frame. Added single entry to value structure: "frame", used to indicate which frame a relative regnum is relative to. * findvar.c (value_from_register): Modified to correctly setup these fields when needed. Deleted section to fiddle with last register copied on little endian machine; multi register structures will always occupy an integral number of registers. (find_saved_register): Made extern. * values.c (allocate_value, allocate_repeat_value): Zero frame field on creation. * valops.c (value_assign): Added case for lval_reg_frame_relative; copy value out, modify it, and copy it back. Desclared find_saved_register as being external. * value.h: Removed addition of kludgy structure; thoroughly commented file. * values.c (free_value, free_all_values, clear_value_history, set_internalvar, clear_internavars): Killed free_value. Wed Jan 18 20:09:39 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * value.h: Deleted struct partial_storage; left over from yesterday. * findvar.c (value_from_register): Added code to create a value of type lval_reg_partsaved if a value is in seperate registers and saved in different places. Tue Jan 17 13:50:18 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * value.h: Added lval_reg_partsaved to enum lval_type and commented enum lval_type. Commented value structure. Added "struct partial_register_saved" to value struct; added macros to deal with structure to value.h. * values.c (free_value): Created; special cases lval_reg_partsaved (which has a pointer to an array which also needs to be free). (free_all_values, clear_value_history, set_internalvar, clear_internalvars): Modified to use free_values. * m-sunos4.h: Changed name to sun3os4.h. * m-sun2os4.h, m-sun4os4.h: Created. * config.gdb: Added configuration entries for each of the above. * Makefile: Added into correct lists. * Makefile: Added dependencies on a.out.encap.h. Made a.out.encap.h dependent on a.out.gnu.h and dbxread.c dependent on stab.gnu.h. * infrun.c, remote.c: Removed inclusion of any a.out.h files in these files; they aren't needed. * README: Added comment about bug reporting and comment about xgdb. * Makefile: Added note to HPUX dependent section warning about problems if compiled with gcc and mentioning the need to add -Ihp-include to CFLAGS if you compile on those systems. Added a note about needing the GNU nm with compilers *of gdb* that use the coff encapsulate feature also. * hp-include: Made symbolic link over to /gp/gnu/binutils. * Makefile: Added TSOBS NTSOBS OBSTACK and REGEX to list of things to delete in "make clean". Also changed "squeakyclean" target as "realclean". * findvar.c (value_from_register): Added assignment of VALUE_LVAL to be lval_memory when that is appropriate (original code didn't bother because it assumed that it was working with a pre lval memoried value). * expread.y (yylex): Changed to only return type THIS if the symbol "$this" is defined in some block superior or equal to the current expression context block. Mon Jan 16 13:56:44 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * m-*.h (FRAME_CHAIN_VALID): On machines which check the relation of FRAME_SAVED_PC (thisframe) to first_object_file_end (all except gould), make sure that the pc of the current frame also passes (in case someone stops in _start). * findvar.c (value_of_register): Changed error message in case of no inferior or core file. * infcmd.c (registers_info): Added a check for inferior or core file; error message if not. * main.c (gdb_read_line): Modified to take prompt as argument and output it to stdout. * infcmd.c (registers_info, signals_info), main.c (command_loop, read_command_lines, copying_info), symtab.c (decode_line_2, output_source_filename, MORE, list_symbols): Changed calling convention used to call gdb_read_line. * infcmd.c, infrun.c, main.c, symtab.c: Changed the name of the function "read_line" to "gdb_read_line". * breakpoint.c: Deleted external referenced to function "read_line" (not needed by code). Fri Jan 13 12:22:05 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * i386-dep.c: Include a.out.encap.h if COFF_ENCAPSULATE. (N_SET_MAGIC): Defined if not defined by include file. (core_file_command): Used N_SET_MAGIC instead of assignment to a_magic. (exec_file_command): Stuck in a HEADER_SEEK_FD. * config.gdb: Added i386-dep.c as depfile for i386gas choice. * munch: Added -I. to cc to pick up things included by the param file. * stab.gnu.def: Changed name to stab.def (stab.gnu.h needs this name). * Makefile: Changed name here also. * dbxread.c: Changed name of gnu-stab.h to stab.gnu.h. * gnu-stab.h: Changed name to stab.gnu.h. * stab.gnu.def: Added as link to binutils. * Makefile: Put both in in the distribution. Thu Jan 12 11:33:49 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * dbxread.c: Made which stab.h is included dependent on COFF_ENCAPSULATE; either or "gnu-stab.h". * Makefile: Included gnu-stab.h in the list of files to include in the distribution. * gnu-stab.h: Made a link to /gp/gnu/binutils/stab.h * Makefile: Included a.out.gnu.h and m-i386gas.h in list of distribution files. * m-i386gas.h: Changed to include m-i386.h and fiddle with it instead of being a whole new file. * a.out.gnu.h: Made a link to /gp/gnu/binutils/a.out.gnu.h. Chris Hanson's changes to gdb for hp Unix. * Makefile: Modified comments on hpux. * hp9k320-dep.c: #define'd WOPR & moved inclusion of signal.h * inflow.c: Moved around declaratiosn of and inside of USG depends and deleted all SYSV ifdef's (use USG instead). * munch: Modified to accept any number of spaces between the T and the symbol name. Pace's changes to gdb to work with COFF_ENCAPSULATE (robotussin): * config.gdb: Added i386gas to targets. * default-dep.c: Include a.out.encap.h if COFF_ENCAPSULATE. (N_SET_MAGIC): Defined if not defined by include file. (core_file_command): Used N_SET_MAGIC instead of assignment to a_magic. (exec_file_command): Stuck in a HEADER_SEEK_FD. * infrun.c, remote.c: Added an include of a.out.encap.h if COFF_ENCAPSULATE defined. This is commented out in these two files, I presume because the definitions aren't used. * m-i386gas.h: Created. * dbxread.c: Included defintions for USG. (READ_FILE_HEADERS): Now uses HEADER_SEEK_FD if it exists. (symbol_file_command): Deleted use of HEADER_SEEK_FD. * core.c: Deleted extra definition of COFF_FORMAT. (N_MAGIC): Defined to be a_magic if not already defined. (validate_files): USed N_MAGIC instead of reading a_magic. Wed Jan 11 12:51:00 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * remote.c: Upped PBUFSIZ. (getpkt): Added zeroing of c inside loop in case of error retry. * dbxread.c (read_dbx_symtab, process_symbol_for_psymtab): Removed code to not put stuff with debugging symbols in the misc function list. Had been ifdef'd out. * gdb.texinfo: Added the fact that the return value for a function is printed if you use return. * infrun.c (wait_for_inferior): Removed test in "Have we hit step_resume_breakpoint" for sp values in proper orientation. Was in there for recursive calls in functions without frame pointers and it was screwing up calls to alloca. * dbxread.c: Added #ifdef COFF_ENCAPSULATE to include a.out.encap.h. (symbol_file_command): Do HEADER_SEEK_FD when defined. * dbxread.c, core.c: Deleted #ifdef ROBOTUSSIN stuff. * robotussin.h: Deleted local copy (was symlink). * a.out.encap.h: Created symlink to /gp/gnu/binutils/a.out.encap.h. * Makefile: Removed robotussin.h and included a.out.encap.h in list of files. * valprint.c (val_print, print_scalar_formatted): Changed default precision of printing float value; now 6 for a float and 16 for a double. * findvar.c (value_from_register): Added code to deal with the case where a value is spread over several registers. Still don't deal with the case when some registers are saved in memory and some aren't. Tue Jan 10 17:04:04 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * xgdb.c (xgdb_create_window): Removed third arg (XtDepth) to frameArgs. * infrun.c (handle_command): Error if signal number is less or equal to 0 or greater or equal to NSIG or a signal number is not provided. * command.c (lookup_cmd): Modified to not convert command section of command line to lower case in place (in case it isn't a subcommand, but an argument to a command). Fri Jan 6 17:57:34 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * dbxread.c: Changed "text area" to "data area" in comments on N_SETV. Wed Jan 4 12:29:54 1989 Randall Smith (randy at gluteus.ai.mit.edu) * dbxread.c: Added definitions of gnu symbol types after inclusion of a.out.h and stab.h. Mon Jan 2 20:38:31 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * eval.c (evaluate_subexp): Binary logical operations needed to know type to determine whether second value should be evaluated. Modified to discover type before binup_user_defined_p branch. Also commented "enum noside". * Makefile: Changed invocations of munch to be "./munch". * gdb.texinfo: Updated to refer to current version of gdb with January 1989 last update. * coffread.c (end_symtab): Zero context stack when finishing lexical contexts. (read_coff_symtab): error if context stack 0 in ".ef" else case. * m-*.h (FRAME_SAVED_PC): Changed name of argument from "frame" to "FRAME" to avoid problems with replacement of "->frame" part of macro. * i386-dep.c (i386_get_frame_setup): Added codestream_get() to move codestream pointer up to the correct location in "subl $X, %esp" case. Sun Jan 1 14:24:35 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) * valprint.c (val_print): Rewrote routine to print string pointed to by char pointer; was producing incorrect results when print_max was 0. Fri Dec 30 12:13:35 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) * dbxread.c (read_dbx_symtab, process_symbol_for_psymtab): Put everything on the misc function list. * Checkpointed distribution. * Makefile: Added expread.tab.c to the list of things slated for distribution. Thu Dec 29 10:06:41 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) * stack.c (set_backtrace_limit_command, backtrace_limit_info, bactrace_command, _initialize_stack): Removed modifications for limit on backtrace. Piping the backtrace through an interuptable "more" emulation is a better way to do it. Wed Dec 28 11:43:09 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) * stack.c (set_backtrace_limit_command): Added command to set a limit to the number of frames for a backtrace to print by default. (backtrace_limit_info): To print the current limit. (backtrace_command): To use the limit. (_initialize_stack): To initialize the limit to its default value (30), and add the set and info commands onto the appropriate command lists. * gdb.texinfo: Documented changes to "backtrace" and "commands" commands. * stack.c (backtrace_command): Altered so that a negative argument would show the last few frames on the stack instead of the first few. (_initialize_stack): Modified help documentation. * breakpoint.c (commands_command): Altered so that "commands" with no argument would refer to the last breakpoint set. (_initialize_breakpoint): Modified help documentation. * infrun.c (wait_for_inferior): Removed ifdef on Sun4; now you can single step through compiler generated sub calls and will die if you next off of the end of a function. * sparc-dep.c (single_step): Fixed typo; "break_insn" ==> "sizeof break_insn". * m-sparc.h (INIT_EXTRA_FRAME_INFO): Set the bottom of a stack frame to be the bottom of the stack frame inner from this, if that inner one is a leaf node. * dbxread.c (read_dbx_symtab): Check to make sure we don't add a psymtab to it's own dependency list. * dbxread.c (read_dbx_symtab): Modified check for duplicate dependencies to catch them correctly. Tue Dec 27 17:02:09 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) * m-*.h (FRAME_SAVED_PC): Modified macro to take frame info pointer as argument. * stack.c (frame_info), blockframe.c (get_prev_frame_info), gld-pinsn.c (findframe), m-*.h (SAVED_PC_AFTER_CALL, FRAME_CHAIN_VALID, FRAME_NUM_ARGS): Changed usage of macros to conform to above. * m-sparc.h (FRAME_SAVED_PC), sparc-dep.c (frame_saved_pc): Changed frame_saved_pc to have a frame info pointer as an argument. * m-vax.h, m-umax.h, m-npl.h, infrun.c (wait_for_inferior), blockframe.c (get_prev_frame_info): Modified SAVED_PC_AFTER_CALL to take a frame info pointer as an argument. * blockframe.c (get_prev_frame_info): Altered the use of the macros FRAME_CHAIN, FRAME_CHAIN_VALID, and FRAME_CHAIN_COMBINE to use frame info pointers as arguments instead of frame addresses. * m-vax.h, m-umax.h, m-sun3.h, m-sun3.h, m-sparc.h, m-pn.h, m-npl.h, m-news.h, m-merlin.h, m-isi.h, m-hp9k320.h, m-i386.h: Modified definitions of the above macros to suit. * m-pn.h, m-npl.h, gould-dep.c (findframe): Modified findframe to use a frame info argument; also fixed internals (wouldn't work before). * m-sparc.h: Cosmetic changes; reordered some macros and made sure that nothing went over 80 lines. Thu Dec 22 11:49:15 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) * Version 3.0 released. * README: Deleted note about changing -lobstack to obstack.o. Wed Dec 21 11:12:47 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) * m-vax.h (SKIP_PROLOGUE): Now recognizes gcc prologue also. * blockframe.c (get_prev_frame_info): Added FUNCTION_START_OFFSET to result of get_pc_function_start. * infrun.c (wait_for_inferior): Same. * gdb.texinfo: Documented new "step" and "next" behavior in functions without line number information. Tue Dec 20 18:00:45 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) * infcmd.c (step_1): Changed behavior of "step" or "next" in a function witout line number information. It now sets the step range around the function (to single step out of it) using the misc function vector, warns the user, and continues. * symtab.c (find_pc_line): Zero "end" subsection of returned symtab_and_line if no symtab found. Mon Dec 19 17:44:35 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) * i386-pinsn.c (OP_REG): Added code from pace to streamline disassembly and corrected types. * i386-dep.c (i386_follow_jump): Code added to follow byte and word offset branches. (i386_get_frame_setup): Expanded to deal with more wide ranging function prologue. (i386_frame_find_saved_regs, i386_skip_prologue): Changed to use i386_get_frame_setup. Sun Dec 18 11:15:03 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) * m-sparc.h: Deleted definition of SUN4_COMPILER_BUG; was designed to avoid something that I consider a bug in our code, not theirs, and which I fixed earlier. Also deleted definition of CANNOT_USE_ARBITRARY_FRAME; no longer used anywhere. FRAME_SPECIFICATION_DYADIC used instead. * infrun.c (wait_for_inferior): On the sun 4, if a function doesn't have a prologue, a next over it single steps into it. This gets around the problem of a "call .stret4" at the end of functions returning structures. * m-sparc.h: Defined SUN4_COMPILER_FEATURE. * main.c (copying_info): Seperated the last printf into two printfs. The 386 compiler will now handle it. * i386-pinsn.c, i386-dep.c: Moved print_387_control_word, print_387_status_word, print_387_status, and i386_float_info to dep.c Also included reg.h in dep.c. Sat Dec 17 15:31:38 1988 Randall Smith (randy at gluteus.ai.mit.edu) * main.c (source_command): Don't close instream if it's null (indicating execution of a user-defined command). (execute_command): Set instream to null before executing commands and setup clean stuff to put it back on error. * inflow.c (terminal_inferior): Went back to not checking the ioctl returns; there are some systems when this will simply fail. It seems that, on most of these systems, nothing bad will happen by that failure. * values.c (value_static_field): Fixed dereferencing of null pointer. * i386-dep.c (i386_follow_jump): Modified to deal with unconditional byte offsets also. * dbxread.c (read_type): Fixed typo in function type case of switch. * infcmd.c (run_command): Does not prompt to restart if command is not from a tty. Fri Dec 16 15:21:58 1988 Randy Smith (randy at calvin) * gdb.texinfo: Added a third option under the "Cannot Insert Breakpoints" workarounds. * printcmd.c (display_command): Don't do the display unless there is an active inferior; only set it. * findvar.c (value_of_register): Added an error check for calling this when the inferior isn't active and a core file isn't being read. * config.gdb: Added reminder about modifying REGEX in the makefile for the 386. * i386-pinsn.c, i386-dep.c: Moved m-i386.h helper functions over to i386-dep.c.b Thu Dec 15 14:04:25 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) * README: Added a couple of notes about compiling gdb with itself. * breakpoint.c (set_momentary_breakpoint): Only takes FRAME_FP of frame if frame is non-zero. * printcmd.c (print_scalar_formatted): Implemented /g size for hexadecimal format on machines without an 8 byte integer type. It seems to be non-trivial to implement /g for other formats. (decode_format): Allowed hexadecimal format to make it through /g fileter. Wed Dec 14 13:27:04 1988 Randall Smith (randy at gluteus.ai.mit.edu) * expread.y: Converted all calls to write_exp_elt from the parser to calls to one of write_exp_elt_{opcode, sym, longcst, dblcst, char, type, intern}. Created all of these routines. This gets around possible problems in passing one of these things in one ear and getting something different out the other. Eliminated SUN4_COMPILER_BUG ifdef's; they are now superfluous. * symmisc.c (free_all_psymtabs): Reinited partial_symtab_list to 0. (_initialize_symmisc): Initialized both symtab_list and partial_symtab_list. * dbxread.c (start_psymtab): Didn't allocate anything on dependency list. (end_psymtab): Allocate dependency list on psymbol obstack from local list. (add_psymtab_dependency): Deleted. (read_dbx_symtab): Put dependency on local list if it isn't on it already. * symtab.c: Added definition of psymbol_obstack. * symtab.h: Added declaration of psymbol_obstack. * symmisc.c (free_all_psymtabs): Added freeing and reinitionaliztion of psymbol_obstack. * dbxread.c (free_all_psymbols): Deleted. (start_psymtab, end_psymtab, process_symbol_for_psymtab): Changed most allocation of partial symbol stuff to be off of psymbol_obstack. * symmisc.c (free_psymtab, free_all_psymtabs): Deleted free_psymtab subroutine. * symtab.h: Removed num_includes and includes from partial_symtab structure; no longer needed now that all include files have their own psymtab. * dbxread.c (start_psymtab): Eliminated initialization of above. (end_psymtab): Eliminated finalization of above; get includes from seperate list. (read_dbx_symtab): Moved includes from psymtab list to their own list; included in call to end_psymtab. * symmisc.c (free_psymtab): Don't free includes. Tue Dec 13 14:48:14 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) * i386-pinsn.c: Reformatted entire file to correspond to gnu software indentation conventions. * sparc-dep.c (skip_prologue): Added capability of recognizign stores of input register parameters into stack slots. * sparc-dep.c: Added an include of sparc-opcode.h. * sparc-pinsn.c, sparc-opcode.h: Moved insn_fmt structures and unions from pinsn.c to opcode.h. * sparc-pinsn.c, sparc-dep.c (isabranch, skip_prologue): Moved this function from pinsn.c to dep.c. * Makefile: Put in warnings about compiling with gcc (non-ansi include files) and compiling with shared libs on Sunos 4.0 (can't debug something that's been compiled that way). * sparc-pinsn.c: Put in a completely new file (provided by Tiemann) to handle floating point disassembly, load and store instructions, and etc. better. Made the modifications this file (ChangeLog) list for sparc-pinsn.c again. * symtab.c (output_source_filename): Included "more" emulation hack. * symtab.c (output_source_filename): Initialized COLUMN to 0. (sources_info): Modified to not print out a line for all of the include files within a partial symtab (since they have pst's of their own now). Also modified to make a distinction between those pst's read in and those not. * infrun.c: Included void declaration of single_step() if it's going to be used. * sparc-dep.c (single_step): Moved function previous to use of it. * Makefile: Took removal of expread.tab.c out of make clean entry and put it into a new "squeakyclean" entry. Mon Dec 12 13:21:02 1988 Randall Smith (randy at gluteus.ai.mit.edu) * sparc-pinsn.c (skip_prologue): Changed a struct insn_fmt to a union insn_fmt. * inflow.c (terminal_inferior): Checked *all* return codes from ioctl's and fcntl's in routine. * inflow.c (terminal_inferior): Added check for sucess of TIOCSPGRP ioctl call. Just notifies if bad. * dbxread.c (symbol_file_command): Close was getting called twice; once directly and once through cleanup. Killed the direct call. Sun Dec 11 19:40:40 1988 & Smith (randy at hobbes.ai.mit.edu) * valprint.c (val_print): Deleted spurious printing of "=" from TYPE_CODE_REF case. Sat Dec 10 16:41:07 1988 Randall Smith (randy at gluteus.ai.mit.edu) * dbxread.c: Changed allocation of psymbols from using malloc and realloc to using obstacks. This means they aren't realloc'd out from under the pointers to them. Fri Dec 9 10:33:24 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) * sparc-dep.c inflow.c core.c expread.y command.c infrun.c infcmd.c dbxread.c symmisc.c symtab.c printcmd.c valprint.c values.c source.c stack.c findvar.c breakpoint.c blockframe.c main.c: Various cleanups inspired by "gcc -Wall" (without checking for implicit declarations). * Makefile: Cleaned up some more. * valops.c, m-*.h (FIX_CALL_DUMMY): Modified to take 5 arguments as per what sparc needs (programming for a superset of needed args). * dbxread.c (process_symbol_for_psymtab): Modified to be slightly more picky about what it puts on the list of things *not* to be put on the misc function list. When/if I shift everything over to being placed on the misc_function_list, this will go away. * inferior.h, infrun.c: Added fields to save in inferior_status structure. * maketarfile: Deleted; functionality is in Makefile now. * infrun.c (wait_for_inferior): Modified algorithm for determining whether or not a single-step was through a subroutine call. See comments at top of file. * dbxread.c (read_dbx_symtab): Made sure that the IGNORE_SYMBOL macro would be checked during initial readin. * dbxread.c (read_ofile_symtab): Added macro GCC_COMPILED_FLAG_SYMBOL into dbxread.c to indicate what string in a local text symbol will indicate a file compiled with gcc. Defaults to "gcc_compiled.". Thu Dec 8 11:46:22 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) * m-sparc.h (FRAME_FIND_SAVED_REGS): Cleaned up a little to take advantage of the new frame cache system. * inferior.h, infrun.c, valops.c, valops.c, infcmd.c: Changed mechanism to save inferior status over calls to inferior (eg. call_function); implemented save_inferior_info and restore_inferior_info. * blockframe.c (get_prev_frame): Simplified this by a direct call to get_prev_frame_info. * frame.h, stack.c, printcmd.c, m-sparc.h, sparc-dep.c: Removed all uses of frame_id_from_addr. There are short routines like it still in frame_saved_pc (m-sparc.h) and parse_frame_spec (stack.c). Eventually the one in frame_saved_pc will go away. * infcmd.c, sparc-dep.c: Implemented a new mechanism for re-selecting the selected frame on return from a call. * blockframe.c, stack.c, findvar.c, printcmd.c, m-*.h: Changed all routines and macros that took a "struct frame_info" as an argument to take a "struct frame_info *". Routines: findarg, framechain, print_frame_args, FRAME_ARGS_ADDRESS, FRAME_STRUCT_ARGS_ADDRESS, FRAME_LOCALS_ADDRESS, FRAME_NUM_ARGS, FRAME_FIND_SAVED_REGS. * frame.h, stack.c, printcmd.c, infcmd.c, findvar.c, breakpoint.c, blockframe.c, xgdb.c, i386-pinsn.c, gld-pinsn.c, m-umax.h, m-sun2.h, m-sun3.h, m-sparc.h, m-pn.h, m-npl.h, m-news.h, m-merlin.h, m-isi.h, m-i386.h, m-hp9k320.h: Changed routines to use "struct frame_info *" internally. Wed Dec 7 12:07:54 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) * frame.h, blockframe.c, m-sparc.h, sparc-dep.c: Changed all calls to get_[prev_]frame_cache_item to get_[prev_]frame_info. * blockframe.c: Elminated get_frame_cache_item and get_prev_frame_cache_item; functionality now taken care of by get_frame_info and get_prev_frame_info. * blockframe.c: Put allocation on an obstack and eliminated fancy reallocation routines, several variables, and various nasty things. * frame.h, stack.c, infrun.c, blockframe.c, sparc-dep.c: Changed type FRAME to be a typedef to "struct frame_info *". Had to also change routines that returned frame id's to return the pointer instead of the cache index. * infcmd.c (finish_command): Used proper method of getting from function symbol to start of function. Was treating a symbol as a value. * blockframe.c, breakpoint.c, findvar.c, infcmd.c, stack.c, xgdb.c, i386-pinsn.c, frame.h, m-hp9k320.h, m-i386.h, m-isi.h, m-merlin.h, m-news.h, m-npl.h, m-pn.h, m-sparc.h, m-sun2.h, m-sun3.h, m-umax.h: Changed get_frame_info and get_prev_frame_info to return pointers instead of structures. * blockframe.c (get_pc_function_start): Modified to go to misc function table instead of bombing if pc was in a block without a containing function. * coffread.c: Dup'd descriptor passed to read_coff_symtab and fdopen'd it so that there wouldn't be multiple closes on the same fd. Also put (fclose, stream) on the cleanup list. * printcmd.c, stack.c: Changed print_frame_args to take a frame_info struct as argument instead of the address of the args to the frame. * m-i386.h (STORE_STRUCT_RETURN): Decremented sp by sizeof object to store (an address) rather than 1. * dbxread.c (read_dbx_symtab): Set first_object_file_end in read_dbx_symtab (oops). * coffread.c (fill_in_vptr_fieldno): Rewrote TYPE_BASECLASS as necessary. Tue Dec 6 13:03:43 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) * coffread.c: Added fake support for partial_symtabs to allow compilation and execution without there use. * inflow.c: Added a couple of minor USG mods. * munch: Put in appropriate conditionals so that it would work on USG systems. * Makefile: Made regex.* handled same as obstack.*; made sure tar file included everything I wanted it to include (including malloc.c). * dbxread.c (end_psymtab): Create an entry in the partial_symtab_list for each subfile of the .o file just read in. This allows a "list expread.y:10" to work when we haven't read in expread.o's symbol stuff yet. * symtab.h, dbxread.c (psymtab_to_symtab): Recognize pst->ldsymlen == 0 as indicating a dummy psymtab, only in existence to cause the dependency list to be read in. * dbxread.c (sort_symtab_syms): Elminated reversal of symbols to make sure that register debug symbol decls always come before parameter symbols. After mod below, this is not needed. * symtab.c (lookup_block_symbol): Take parameter type symbols (LOC_ARG or LOC_REGPARM) after any other symbols which match. * dbxread.c (read_type): When defining a type in terms of some other type and the other type is supposed to have a pointer back to this specific kind of type (pointer, reference, or function), check to see if *that* type has been created yet. If it has, use it and fill in the appropriate slot with a pointer to it. Mon Dec 5 11:25:04 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) * symmisc.c: Eliminated existence of free_inclink_symtabs and init_free_inclink_symtabs; they aren't called from anywhere, and if they were they could disrupt gdb's data structure badly (elimination of struct type's which values that stick around past elimination of inclink symtabs). * dbxread.c (symbol_file_command): Fixed a return pathway out of the routine to do_cleanups before it left. * infcmd.c (set_environment_command), gdb.texinfo: Added capability to set environmental variable values to null. * gdb.texinfo: Modified doc on "break" without args slightly. Sun Dec 4 17:03:16 1988 Randall Smith (randy at gluteus.ai.mit.edu) * dbxread.c (symbol_file_command): Added check; if there weren't any debugging symbols in the file just read, the user is warned. * infcmd.c: Commented set_environment_command (a little). * createtags: Cleaned up and commented. * Makefile: Updated dependency list and cleaned it up somewhat (used macros, didn't make .o files depend on .c files, etc.) Fri Dec 2 11:44:46 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) * value.h, values.c, infcmd.c, valops.c, m-i386.h, m-sparc.h, m-merlin.h, m-npl.h, m-pn.h, m-umax.h, m-vax.h, m-hp9k320.h, m-isi.h, m-news.h, m-sun2.h, m-sun3.h: Cleaned up dealings with functions returning structures. Specifically: Added a function called using_struct_return which indicates whether the function being called is using the structure returning conventions or it is using the value returning conventions on that machine. Added a macro, STORE_STRUCT_RETURN to store the address of the structure to be copied into wherever it's supposed to go, and changed call_function to handle all of this correctly. * symseg.h, symtab.h, dbxread.c: Added hooks to recognize an N_TEXT symbol with name "*gcc-compiled*" as being a flag indicating that a file had been compiled with gcc and setting a flag in all blocks produced during processing of that file. Thu Dec 1 13:54:29 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) * m-sparc.h (PUSH_DUMMY_FRAME): Saved 8 less than the current pc, as POP_FRAME and sparc return convention restore the pc to 8 more than the value saved. * valops.c, printcmd.c, findvar.c, value.h: Added the routine value_from_register, to access a specific register of a specific frame as containing a specific type, and used it in read_var_value and print_frame_args. Wed Nov 30 17:39:50 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) * dbxread.c (read_number): Will accept either the argument passed as an ending character, or a null byte as an ending character. * Makefile, createtags: Added entry to create tags for gdb distribution which will make sure currently configured machine dependent files come first in the list. Wed Nov 23 13:27:34 1988 Randall Smith (randy at gluteus.ai.mit.edu) * stack.c, infcmd.c, sparc-dep.c: Modified record_selected_frame to work off of frame address. * blockframe.c (create_new_frame, get_prev_frame_cache_item): Added code to reset pointers within frame cache if it must be realloc'd. * dbxread.c (read_dbx_symtab): Added in optimization comparing last couple of characters instead of first couple to avoid strcmp's in read_dbx_symtab (recording extern syms in misc functions or not). 1 call to strlen is balanced out by many fewer calls to strcmp. Tue Nov 22 16:40:14 1988 Randall Smith (randy at cream-of-wheat.ai.mit.edu) * dbxread.c (read_dbx_symtab): Took out optimization for ignoring LSYM's; was disallowing typedefs. Silly me. * Checkpointed distribution (mostly for sending to Tiemann). * expression.h: Added BINOP_MIN and BINOP_MAX operators for C++. * symseg.h: Included flags for types having destructors and constructors, and flags being defined via public and via virtual paths. Added fields NEXT_VARIANT, N_BASECLASSES, and BASECLASSES to this type (tr: Changed types from having to be derived from a single baseclass to a multiple base class). * symtab.h: Added macros to access new fields defined in symseg.h. Added decl for lookup_basetype_type. * dbxread.c (condense_addl_misc_bunches): Function added to condense the misc function bunches added by reading in a new .o file. (read_addl_syms): Function added to read in symbols from a new .o file (incremental linking). (add_file_command): Command interface function to indicate incrmental linking of a new .o file; this now calls read_addl_syms and condense_addl_misc_bunches. (define_symbol): Modified code to handle types defined from base types which were not known when the derived class was output. (read_struct_type): Modified to better handle description of struct types as derived types. Possibly derived from several different base classes. Also added new code to mark definitions via virtual paths or via public paths. Killed seperate code to handle classes with destructors but without constructors and improved marking of classes as having destructors and constructors. * infcmd.c: Modified call to val_print (one more argument). * symtab.c (lookup_member_type): Modified to deal with new structure in symseg.h. (lookup_basetype_type): Function added to find or construct a type ?derived? from the given type. (decode_line_1): Modified to deal with new type data structures. Modified to deal with new number of args for decode_line_2. (decode_line_2): Changed number of args (?why?). (init_type): Added inits for new C++ fields from symseg.h. *valarith.c (value_x_binop, value_binop): Added cases for BINOP_MIN & BINOP_MAX. * valops.c (value_struct_elt, check_field, value_struct_elt_for_address): Changed to deal with multiple possible baseclasses. (value_of_this): Made SELECTED_FRAME an extern variable. * valprint.c (val_print): Added an argument DEREF_REF to dereference references automatically, instead of printing them like pointers. Changed number of arguments in recursive calls to itself. Changed to deal with varibale numbers of base classes. (value_print): Changed number of arguments to val_print. Print type of value also if value is a reference. (type_print_derivation_info): Added function to print out derivation info a a type. (type_print_base): Modified to use type_print_derivation_info and to handle multiple baseclasses. Mon Nov 21 10:32:07 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) * inflow.c (term_status_command): Add trailing newline to output. * sparc-dep.c (do_save_insn, do_restore_insn): Saved "stop_registers" over the call for the sake of normal_stop and run_stack_dummy. * m-sparc.h (EXTRACT_RETURN_VALUE): Put in parenthesis to force addition of 8 to the int pointer, not the char pointer. * sparc-pinsn.c (print_addr1): Believe that I have gotten the syntax right for loads and stores as adb does it. * symtab.c (list_symbols): Turned search for match on rexegp into a single loop. * dbxread.c (psymtab_to_symtab): Don't read it in if it's already been read in. * dbxread.c (psymtab_to_symtab): Changed error to fatal in psymtab_to_symtab. * expread.y (parse_number): Fixed bug which treated 'l' at end of number as '0'. Fri Nov 18 13:57:33 1988 Randall Smith (randy at gluteus.ai.mit.edu) * dbxread.c (read_dbx_symtab, process_symbol_for_psymtab): Was being foolish and using pointers into an array I could realloc. Converted these pointers into integers. Wed Nov 16 11:43:10 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) * m-sparc.h (POP_FRAME): Made the new frame be PC_ADJUST of the old frame. * i386-pinsn.c, m-hp9k320.h, m-isi.h, m-merlin.h, m-news.h, m-npl.h, m-pn.h, m-sparc.h, m-sun2.h, m-sun3.h, m-umax.h, m-vax.h: Modified POP_FRAME to use the current frame instead of read_register (FP_REGNUM) and to flush_cached_frames before setting the current frame. Also added a call to set the current frame in those POP_FRAMEs that didn't have it. * infrun.c (wait_for_inferior): Moved call to set_current_frame up to guarrantee that the current frame will always be set when a POP_FRAME is done. * infrun.c (normal_stop): Added something to reset the pc of the current frame (was incorrect because of DECR_PC_AFTER_BREAK). * valprint.c (val_print): Changed to check to see if a string was out of bounds when being printed and to indicate this if so. * convex-dep.c (read_inferior_memory): Changed to return the value of errno if the call failed (which will be 0 if the call suceeded). Tue Nov 15 10:17:15 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) * infrun.c (wait_for_inferior): Two changes: 1) Added code to not trigger the step breakpoint on recursive calls to functions without frame info, and 2) Added calls to distinguish recursive calls within a function without a frame (which next/nexti might wish to step over) from jumps to the beginning of a function (which it generally doesn't). * m-sparc.h (INIT_EXTRA_FRAME_INFO): Bottom set correctly for leaf parents. * blockframe.c (get_prev_frame_cache_item): Put in mod to check for a leaf node (by presence or lack of function prologue). If there is a leaf node, it is assumed that SAVED_PC_AFTER_CALL is valid. Otherwise, FRAME_SAVED_PC or read_pc is used. * blockframe.c, frame.h: Did final deletion of unused routines and commented problems with getting a pointer into the frame cache in the frame_info structure comment. * blockframe.c, frame.h, stack.c: Killed use of frame_id_from_frame_info; used frame_id_from_addr instead. * blockframe.c, frame.h, stack.c, others (oops): Combined stack cache and frame info structures. * blockframe.c, sparc-dep.c, stack.c: Created the function create_new_frame and used it in place of bad calls to frame_id_from_addr. * blockframe.c, inflow.c, infrun.c, i386-pinsn.c, m-hp9k320.h, m-npl.h, m-pn.h, m-sparc.h, m-sun3.h, m-vax.h, default-dep.c, convex-dep.c, gould-dep.c, hp9k320-dep.c, news-dep.c, sparc-dep.c, sun3-dep.c, umax-dep.c: Killed use of set_current_Frame_by_address. Used set_current_frame (create_new_frame...) instead. * frame.h: Killed use of FRAME_FP_ID. * infrun.c, blockframe.c: Killed select_frame_by_address. Used select_frame (get_current_frame (), 0) (which was correct in all cases that we need to worry about. Mon Nov 14 14:19:32 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) * frame.h, blockframe.c, stack.c, m-sparc.h, sparc-dep.c: Added mechanisms to deal with possible specification of frames dyadically. Sun Nov 13 16:03:32 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) * ns32k-opcode.h: Add insns acbw, acbd. Sun Nov 13 15:09:58 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) * breakpoint.c: Changed breakpoint structure to use the address of a given frame (constant across inferior runs) as the criteria for stopping instead of the frame ident (which varies across inferior calls). Fri Nov 11 13:00:22 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) * gld-pinsn.c (findframe): Modified to work with the new frame id's. Actually, it looks as if this routine should be called with an address anyway. * findvar.c (find_saved_register): Altered bactrace loop to work off of frames and not frame infos. * frame.h, blockframe.c, stack.c, sparc-dep.c, m-sparc.h: Changed FRAME from being the address of the frame to being a simple ident which is an index into the frame_cache_item list. * convex-dep.c, default-dep.c, gould-dep.c, hp9k320-dep.c, i386-pinsn.c, inflow.c, infrun.c, news-dep.c, sparc-dep.c, sun3-dep.c, umax-dep.c, m-hp9k320.h, m-npl.h, m-pn.h, m-sparc.h, m-sun3.h, m-vax.h: Changed calls of the form set_current_frame (read_register (FP_REGNUM)) to set_current_frame_by_address (...). Thu Nov 10 16:57:57 1988 Randall Smith (randy at gluteus.ai.mit.edu) * frame.h, blockframe.c, gld-pinsn.c, sparc-dep.c, stack.c, infrun.c, findvar.c, m-sparc.h: Changed the FRAME type to be purely an identifier, using FRAME_FP and FRAME_FP_ID to convert back and forth between the two. The identifier is *currently* still the frame pointer value for that frame. Wed Nov 9 17:28:14 1988 Chris Hanson (cph at kleph) * m-hp9k320.h (FP_REGISTER_ADDR): Redefine this to return difference between address of given FP register, and beginning of `struct user' that it occurs in. * hp9k320-dep.c (core_file_command): Fix sign error in size argument to myread. Change buffer argument to pointer; was copying entire structure. (fetch_inferior_registers, store_inferior_registers): Replace occurrences of `FP_REGISTER_ADDR_DIFF' with `FP_REGISTER_ADDR'. Flush former definition. Wed Nov 9 12:11:37 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) * xgdb.c: Killed include of initialize.h. * Pulled in xgdb.c from the net. * Checkpointed distribution (to provide to 3b2 guy). * coffread.c, dbxread.c, symmisc.c, symtab.c, symseg.h: Changed format of table of line number--pc mapping information. Can handle negative pc's now. * command.c: Deleted local copy of savestring; code in utils.c is identical. Tue Nov 8 11:12:16 1988 Randall Smith (randy at plantaris.ai.mit.edu) * gdb.texinfo: Added documentation for shell escape. Mon Nov 7 12:27:16 1988 Randall Smith (randy at sugar-bombs.ai.mit.edu) * command.c: Added commands for shell escape. * core.c, dbxread.c: Added ROBOTUSSIN mods. * Checkpointed distribution. * printcmd.c (x_command): Yanked error if there is no memory to examine (could be looking at executable straight). * sparc-pinsn.c (print_insn): Amount to leftshift sethi imm by is now 10 (matches adb in output). * printcmd.c (x_command): Don't attempt to set $_ & $__ if there is no last_examine_value (can happen if you did an x/0). Fri Nov 4 13:44:49 1988 Randall Smith (randy at gluteus.ai.mit.edu) * printcmd.c (x_command): Error if there is no memory to examine. * gdb.texinfo: Added "cont" to the command index. * sparc-dep.c (do_save_insn): Fixed typo in shift amount. * m68k-opcode.h: Fixed opcodes for 68881. * breakpoint.c, infcmd.c, source.c: Changed defaults in several places for decode_line_1 to work off of the default_breakpoint_* values instead of current_source_* values (the current_source_* values are off by 5 or so because of listing defaults). * stack.c (frame_info): ifdef'd out FRAME_SPECIFCATION_DYADIC in the stack.c module. If I can't do this right, I don't want to do it at all. Read the comment there for more info. Mon Oct 31 16:23:06 1988 Randall Smith (randy at gluteus.ai.mit.edu) * gdb.texinfo: Added documentation on the "until" command. Sat Oct 29 17:47:10 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) * breakpoint.c, infcmd.c: Added UNTIL_COMMAND and subroutines of it. * breakpoint.c, infcmd.c, infrun.c: Added new field to breakpoint structure (silent, indicating a silent breakpoint), and modified breakpoint_stop_status and things that read it's return value to understand it. Fri Oct 28 17:45:33 1988 Randall Smith (randy at gluteus.ai.mit.edu) * dbxread.c, symmisc.c: Assorted speedups for readin, including special casing most common symbols, and doing buffering instead of calling malloc. Thu Oct 27 11:11:15 1988 Randall Smith (randy at gluteus.ai.mit.edu) * stack.c, sparc-dep.c, m-sparc.h: Modified to allow "info frame" to take two arguments on the sparc and do the right thing with them. * dbxread.c (read_dbx_symtab, process_symbol_for_psymtab): Put stuff to put only symbols that didn't have debugging info on the misc functions list back in. Wed Oct 26 10:10:32 1988 Randall Smith (randy at gluteus.ai.mit.edu) * valprint.c (type_print_varspec_suffix): Added check for TYPE_LENGTH(TYPE_TARGET_TYPE(type)) > 0 to prevent divide by 0. * printcmd.c (print_formatted): Added check for VALUE_REPEATED; value_print needs to be called for that. * infrun.c (wait_for_inferior): Added break when you decide to stop on a null function prologue rather than continue stepping. * m-sun3.h: Added explanatory comment to REGISTER_RAW_SIZE. * expread.y (parse_c_1): Initialized paren_depth for each parse. Tue Oct 25 14:19:38 1988 Randall Smith (randy at gluteus.ai.mit.edu) * valprint.c, coffread.c, dbxread.c: Enum constant values in enum type now accessed through TYPE_FIELD_BITPOS. * dbxread.c (process_symbol_for_psymtab): Added code to deal with possible lack of a ":" in a debugging symbol (do nothing). * symtab.c (decode_line_1): Added check in case of all numbers for complete lack of symbols. * source.c (select_source_symtab): Made sure that this wouldn't bomb on complete lack of symbols. Mon Oct 24 12:28:29 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) * m-sparc.h, findvar.c: Ditched REGISTER_SAVED_UNIQUELY and based code on REGISTER_IN_WINDOW_P and HAVE_REGISTER_WINDOWS. This will break when we find a register window machine which saves the window registers within the context of an inferior frame. * sparc-dep.c (frame_saved_pc): Put PC_ADJUST return back in for frame_saved_pc. Seems correct. * findvar.c, m-sparc.h: Created the macro REGISTER_SAVED_UNIQUELY to handle register window issues (ie. that find_saved_register wasn't checking the selected frame itself for shit). * sparc-dep.c (core_file_command): Offset target of o & g register bcopy by 1 to hit correct registers. * m-sparc.h: Changed STACK_END_ADDR. Sun Oct 23 19:41:51 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) * sparc-dep.c (core_file_command): Added in code to get the i & l registers from the stack in the corefile, and blew away some wrong code to get i & l from inferior. Fri Oct 21 15:09:19 1988 Randall Smith (randy at apple-gunkies.ai.mit.edu) * m-sparc.h (PUSH_DUMMY_FRAME): Saved the value of the RP register in the location reserved for i7 (in the created frame); this way the rp value won't get lost. The pc (what we put into the rp in this routine) gets saved seperately, so we loose no information. * sparc-dep.c (do_save_insn & do_restore_insn): Added a wrapper to preserve the proceed status state variables around each call to proceed (the current frame was getting munged because this wasn't being done). * m-sparc.h (FRAME_FIND_SAVED_REGS): Fix bug: saved registers addresses were being computed using absolute registers number, rather than numbers relative to each group of regs. * m-sparc.h (POP_FRAME): Fixed a bug (I hope) in the context within which saved reg numbers were being interpetted. The values to be restored were being gotten in the inferior frame, and the restoring was done in the superior frame. This means that i registers must be restored into o registers. * sparc-dep.c (do_restore_insn): Modified to take a pc as an argument, instead of a raw_buffer. This matches (at least it appears to match) usage from POP_FRAME, which is the only place from which do_restore_insn is called. * sparc-dep.c (do_save_insn and do_restore_insn): Added comments. * m-sparc.h (FRAME_FIND_SAVED_REGS): Modified my code to find the save addresses of out registers to use the in regs off the stack pointer when the current frame is 1 from the innermost. Thu Oct 20 13:56:15 1988 & Smith (randy at hobbes.ai.mit.edu) * blockframe.c, m-sparc.h: Removed code associated with GET_PREV_FRAME_FROM_CACHE_ITEM. This code was not needed for the sparc; you can always find the previous frames fp from the fp of the current frame (which is the sp of the previous). It's getting the information associated with a given frame (ie. saved registers) that's a bitch, because that stuff is saved relative to the stack pointer rather than the frame pointer. * m-sparc.h (GET_PREV_FRAME_FROM_CACHE_ITEM): Modified to return the frame pointer of the previous frame instead of the stack pointer of same. * blockframe.c (flush_cached_frames): Modified call to obstack_free to free back to frame_cache instead of back to zero. This leaves the obstack control structure in finite state (and still frees the entry allocated at frame_cache). Sat Oct 15 16:30:47 1988 & Smith (randy at tartarus.uchicago.edu) * valops.c (call_function): Suicide material here. Fixed a typo; CALL_DUMMY_STACK_ADJUST was spelled CAll_DUMMY_STACK_ADJUST on line 530 of the file. This cost me three days. I'm giving up typing for lent. Fri Oct 14 15:10:43 1988 & Smith (randy at tartarus.uchicago.edu) * m-sparc.h: Corrected a minor mistake in the dummy frame code that was getting the 5th argument and the first argument from the same place. Tue Oct 11 11:49:33 1988 & Smith (randy at tartarus.uchicago.edu) * infrun.c: Made stop_after_trap and stop_after_attach extern instead of static so that code which used proceed from machine dependent files could fiddle with them. * blockframe.c, frame.h, sparc-dep.c, m-sparc.h: Changed sense of ->prev and ->next in struct frame_cache_item to fit usage in rest of gdb (oops). Mon Oct 10 15:32:42 1988 Randy Smith (randy at gargoyle.uchicago.edu) * m-sparc.h, sparc-dep.c, blockframe.c, frame.h: Wrote get_frame_cache_item. Modified FRAME_SAVED_PC and frame_saved_pc to take only one argument and do the correct thing with it. Added the two macros I recently defined in blockframe.c to m-sparc.h. Have yet to compile this thing on a sparc, but I've now merged in everything that I received from tiemann, either exactly, or simply effectively. * source.c: Added code to allocated space to sals.sals in the case where no line was specified. * blockframe.c, infrun.c: Modified to cache stack frames requested to minimize accesses to subprocess. Tue Oct 4 15:10:39 1988 Randall Smith (randy at cream-of-wheat.ai.mit.edu) * config.gdb: Added sparc. Mon Oct 3 23:01:22 1988 Randall Smith (randy at cream-of-wheat.ai.mit.edu) * Makefile, blockframe.c, command.c, core.c, dbxread.c, defs.h, expread.y, findvar.c, infcmd.c, inflow.c, infrun.c, sparc-pinsn.c, m-sparc.h, sparc-def.c, printcmd.c, stack.c, symmisc.c, symseg.h, valops.c, values.c: Did initial merge of sparc port. This will not compile; have to do stack frame caching and finish port. * inflow.c, gdb.texinfo: `tty' now resets the controling terminal. Fri Sep 30 11:31:16 1988 Randall Smith (randy at gluteus.ai.mit.edu) * inferior.h, infcmd.c, infrun.c: Changed the variable stop_random_signal to stopped_by_random signal to fit in better with name conventions (variable is not a direction to the proceed/resume set; it is information from it). Thu Sep 29 13:30:46 1988 Randall Smith (randy at cream-of-wheat.ai.mit.edu) * infcmd.c (finish_command): Value type of return value is now whatever the function returns, not the type of the function (fixed a bug in printing said value). * dbxread.c (read_dbx_symtab, process_symbol_for_psymtab): Put *all* global symbols into misc_functions. This is what was happening anyway, and we need it for find_pc_misc_function. ** This was eventually taken out, but I didn't mark it in the ChangeLog. Oops. * dbxread.c (process_symbol_for_psymtab): Put every debugger symbol which survives the top case except for constants on the symchain. This means that all of these *won't* show up in misc functions (this will be fixed once I make sure it's broken the way it's supposed to be). * dbxread.c: Modified placement of debugger globals onto the hash list; now we exclude the stuff after the colon and don't skip the first character (debugger symbols don't have underscores). * dbxread.c: Killed debuginfo stuff with ifdef's. Wed Sep 28 14:31:51 1988 Randall Smith (randy at cream-of-wheat.ai.mit.edu) * symtab.h, dbxread.c: Modified to deal with BINCL, EINCL, and EXCL symbols produced by the sun loader by adding a list of pre-requisite partial_symtabs that each partial symtab needs. * symtab.h, dbxread.c, symtab.c, symmisc.c: Modified to avoid doing a qsort on the local (static) psymbols for each file to speed startup. This feature is not completely debugged, but it's inclusion has forced the inclusion of another feature (dealing with EINCL's, BINCL's and EXCL's) and so I'm going to go in and deal with them. * dbxread.c (process_symbol_for_psymtab): Made sure that the class of the symbol made it into the partial_symbol entry. Tue Sep 27 15:10:26 1988 Randall Smith (randy at gluteus.ai.mit.edu) * dbxread.c: Fixed bug; init_psymbol_list was not being called with the right number of arguments (1). * dbxread.c: Put ifdef's around N_MAIN, N_M2C, and N_SCOPE to allow compilation on a microvax. * config.gdb: Modified so that "config.gdb vax" would work. * dbxread.c, symtab.h, symmisc.h, symtab.c, source.c: Put in many and varied hacks to speed up gdb startup including: A complete rewrite of read_dbx_symtab, a modification of the partial_symtab data type, deletion of select_source_symtab from symbol_file_command, and optimiztion of the call to strcmp in compare_psymbols. Thu Sep 22 11:08:54 1988 Randall Smith (randy at gluteus.ai.mit.edu) * dbxread.c (psymtab_to_symtab): Removed call to init_misc_functions. * dbxread.c: Fixed enumeration type clash (used enum instead of integer constant). * breakpoint.c: Fixed typo; lack of \ at end of line in middle of string constant. * symseg.h: Fixed typo; lack of semicolon after structure definition. * command.c, breakpoint.c, printcmd.c: Added cmdlist editing functions to add commands with the abbrev flag set. Changed help_cmd_list to recognize this flag and modified unset, undisplay, and enable, disable, and delete breakpoints to have this flag set. Wed Sep 21 13:34:19 1988 Randall Smith (randy at plantaris.ai.mit.edu) * breakpoint.c, infcmd.c, gdb.texinfo: Created "unset" as an alias for delete, and changed "unset-environment" to be the "environment" subcommand of "delete". * gdb.texinfo, valprint.c: Added documentation in the manual for breaking the set-* commands into subcommands of set. Changed "set maximum" to "set array-max". * main.c, printcmd.c, breakpoint.c: Moved the declaration of command lists into main and setup a function in main initializing them to guarrantee that they would be initialized before calling any of the individual files initialize routines. * command.c (lookup_cmd): A null string subcommand is treated as an unknown subcommand rather than an ambiguous one (eg. "set $x = 1" will now work). * infrun.c (wait_for_inferior): Put in ifdef for Sony News in check for trap by INNER_THAN macro. * eval.c (evaluate_subexp): Put in catch to keep the user from attempting to call a non function as a function. Tue Sep 20 10:35:53 1988 Randall Smith (randy at oatmeal.ai.mit.edu) * dbxread.c (read_dbx_symtab): Installed code to keep track of which global symbols did not have debugger symbols refering to them, and recording these via record_misc_function. * dbxread.c: Killed code to check for extra global symbols in the debugger symbol table. * printcmd.c, breakpoint.c: Modified help entries for several commands to make sure that abbreviations were clearly marked and that the right commands showed up in the help listings. * main.c, command.c, breakpoint.c, infcmd.c, printcmd.c, valprint.c, defs.h: Modified help system to allow help on a class name to show subcommands as well as commands and help on a command to show *all* subcommands of that command. Fri Sep 16 16:51:19 1988 Randall Smith (randy at gluteus.ai.mit.edu) * breakpoint.c (_initialize_breakpoint): Made "breakpoints" subcommands of enable, disable, and delete use class 0 (ie. they show up when you do a help xxx now). * infcmd.c,printcmd,c,main.c,valprint.c: Changed the set-* commands into subcommands of set. Created "set variable" for use with variables whose names might conflict with other subcommands. * blockframe.c, dbxread.c, coffread.c, expread.y, source.c: Fixed mostly minor (and one major one in block_for_pc) bugs involving checking the partial_symtab_list when a scan through the symtab_list fails. Wed Sep 14 12:02:05 1988 Randall Smith (randy at sugar-smacks.ai.mit.edu) * breakpoint.c, gdb.texinfo: Added enable breakpoints, disable breakpoints and delete breakpoints as synonyms for enable, disable, and delete. This seemed reasonable because of the immeninent arrival of watchpoints & etc. * gdb.texinfo: Added enable display, disable display, and delete display to manual. Tue Sep 13 16:53:56 1988 Randall Smith (randy at sugar-smacks.ai.mit.edu) * inferior.h, infrun.c, infcmd.c: Added variable stop_random_signal to indicate when a proceed had been stopped by an unexpected signal. Used this to determine (in normal_stop) whether the current display point should be deleted. * valops.c: Fix to value_ind to check for reference before doing a COERCE_ARRAY. Sun Jul 31 11:42:36 1988 Richard Stallman (rms at frosted-flakes.ai.mit.edu) * breakpoint.c (_initialize_breakpoint): Clean up doc for commands that can now apply also to auto-displays. * coffread.c (record_line): Corrected a spazz in editing. Also removed the two lines that assume line-numbers appear only in increasing order. Tue Jul 26 22:19:06 1988 Peter TerMaat (pete at corn-chex.ai.mit.edu) * expression.h, eval.c, expprint.c, printcmd.c, valarith.c, valops.c, valprint.c, values.c, m-*.h: Changes for evaluating and displaying 64-bit `long long' integers. Each machine must define a LONGEST type, and a BUILTIN_TYPE_LONGEST. * symmisc.c: (print_symtab) check the status of the fopen and call perror_with_name if needed. Thu Jul 21 00:56:11 1988 Peter TerMaat (pete at corn-chex.ai.mit.edu) * Convex: core.c: changes required by Convex's SOFF format were isolated in convex-dep.c. Wed Jul 20 21:26:10 1988 Peter TerMaat (pete at corn-chex.ai.mit.edu) * coffread.c, core.c, expread.y, i386-pinsn.c, infcmd.c, inflow.c, infrun.c, m-i386.h, main.c, remote.c, source.c, valops.c: Improvements for the handling of the i386 and other machines running USG. (Several of these files just needed extra header files such as types.h.) utils.c: added bcopy, bcmp, bzero, getwd, list of signals, and queue routines for USG systems. Added vfork macro to i386 * printcmd.c, breakpoint.c: New commands to enable/disable auto-displays. Also `delete display displaynumber' works like `undisplay displaynumber'. Tue Jul 19 02:17:18 1988 Peter TerMaat (pete at corn-chex.ai.mit.edu) * coffread.c: (coff_lookup_type) Wrong portion of type_vector was being bzero'd after type_vector was reallocated. * printcmd.c: (delete_display) Check for a display chain before attempting to delete a display. * core.c, *-dep.c (*-infdep moved to *-dep): machine-dependent parts of core.c (core_file_command, exec_file_command) moved to *-dep.c. Mon Jul 18 19:45:51 1988 Peter TerMaat (pete at corn-chex.ai.mit.edu) * dbxread.c: typo in read_struct_type (missing '=') was causing a C struct to be parsed as a C++ struct, resulting in a `invalid character' message. Sun Jul 17 22:27:32 1988 Peter TerMaat (pete at corn-chex.ai.mit.edu) * printcmd.c, symtab.c, valops.c, expread.y: When an expression is read, the innermost block required to evaluate the expression is saved in the global variable `innermost_block'. This information is saved in the `block' field of an auto-display so that expressions with inactive variables can be skipped. `info display' tells the user which displays are active and which are not. New fn `contained_in' returns nonzero if one block is contained within another. Fri Jul 15 01:53:14 1988 Peter TerMaat (pete at corn-chex.ai.mit.edu) * infrun.c, m-i386.h: Use macro TRAPS_EXPECTED to set number of traps to skip when sh execs the program. Default is 2, m-i386.h overrides this and sets to 4. * coffread.c, infrun.c: minor changes for the i386. May be able to eliminate them with more general code. * default-infdep.c: #ifdef SYSTEMV, include header file types.h. Also switched the order of signal.h and user.h, since System 5 requires signal.h to come first. * core.c main.c, remote,c, source.c, inflow.c: #ifdef SYSTEMV, include various header files. Usually types.h and fcntl.h. * utils.c: added queue routines needed by the i386 (and other sys 5 machines). * sys5.c, regex.c, regex.h: new files for sys 5 systems. (The regex files are simply links to /gp/gnu/lib.) Thu Jul 14 01:47:14 1988 Peter TerMaat (pete at corn-chex.ai.mit.edu) * config.gdb, README: Provide a list of known machines when user enters an invalid machine. New second arg is operating system, currently only used with `sunos4' or `os4'. Entry for i386 added. * news-infdep.c: new file. * m-news.h: new version which deals with new bugs in news800's OS. Tue Jul 12 19:52:16 1988 Peter TerMaat (pete at corn-chex.ai.mit.edu) * Makefile, *.c, munch, config.gdb, README: New initialization scheme uses nm to find functions whose names begin with `_initialize_'. Files `initialize.h', `firstfile.c', `lastfile.c', `m-*init.h' no longer needed. * eval.c, symtab.c, valarith.c, valops.c, value.h, values.c: Bug fixes from gdb+ 2.5.4. evaluate_subexp takes a new arg, type expected. New fn value_virtual_fn_field. Mon Jul 11 00:48:49 1988 Peter TerMaat (pete at corn-chex.ai.mit.edu) * core.c (read_memory): xfer_core_file was being called with an extra argument (0) by read_memory. * core.c (read_memory), *-infdep.c (read_inferior_memory), valops.c (value_at): read_memory and read_inferior_memory now work like write_memory and write_inferior_memory in that errno is checked after each ptrace and returned to the caller. Used in value_at to detect references to addresses which are out of bounds. Also core.c (xfer_core_file): return 1 if invalid address, 0 otherwise. * inflow.c, -infdep.c: removed all calls to ptrace from inflow.c and put them in machine-dependent files *-infdep.c. Sun Jul 10 19:19:36 1988 Peter TerMaat (pete at corn-chex.ai.mit.edu) * symmisc.c: (read_symsegs) Accept only format number 2. Since the size of the type structure changed when C++ support was added, format 1 can no longer be used. * core.c, m-sunos4.h: (core_file_command) support for SunOS 4.0. Slight change in the core structure. #ifdef SUNOS4. New file m-sunos4.h. May want to change config.gdb also. Fri Jul 8 19:59:49 1988 Peter TerMaat (pete at corn-chex.ai.mit.edu) * breakpoint.c: (break_command_1) Allow `break if condition' rather than parsing `if' as a function name and returning an error. Thu Jul 7 22:22:47 1988 Peter TerMaat (pete at corn-chex.ai.mit.edu) * C++: valops.c, valprint.c, value.h, values.c: merged code to deal with C++ expressions. Wed Jul 6 03:28:18 1988 Peter TerMaat (pete at corn-chex.ai.mit.edu) * C++: dbxread.c: (read_dbx_symtab, condense_misc_bunches, add_file_command) Merged code to read symbol information from an incrementally linked file. symmisc.c: (init_free_inclink_symtabs, free_inclink_symtabs) Cleanup routines. Tue Jul 5 02:50:41 1988 Peter TerMaat (pete at corn-chex.ai.mit.edu) * C++: symtab.c, breakpoint.c, source.c: Merged code to deal with ambiguous line specifications. In C++ one can have overloaded function names, so that `list classname::overloadedfuncname' refers to several different lines, possibly in different files. Fri Jul 1 02:44:20 1988 Peter TerMaat (pete at corn-chex.ai.mit.edu) * C++: symtab.c: replaced lookup_symtab_1 and lookup_symtab_2 with a modified lookup_symbol which checks for fields of the current implied argument `this'. printcmd.c, source.c, symtab.c, valops.c: Need to change callers once callers are installed. Wed Jun 29 01:26:56 1988 Peter TerMaat (pete at frosted-flakes.ai.mit.edu) * C++: eval.c, expprint.c, expread.y, expression.h, valarith.c, Merged code to deal with evaluation of user-defined operators, member functions, and virtual functions. binop_must_be_user_defined tests for user-defined binops, value_x_binop calls the appropriate operator function. Tue Jun 28 02:56:42 1988 Peter TerMaat (pete at frosted-flakes.ai.mit.edu) * C++: Makefile: changed the echo: expect 101 shift/reduce conflicts and 1 reduce/reduce conflict. Local Variables: mode: indented-text eval: (auto-fill-mode 1) left-margin: 8 fill-column: 74 version-control: never End: