Annotation of gdb/ChangeLog, revision 1.1.1.1

1.1       root        1: Fri Jan 15 05:09:18 1988  Richard Stallman  (rms at frosted-flakes)
                      2: 
                      3:        * valprint.c [IEEE_FLOAT]: New function `is_nan' checks
                      4:        whether a double is a nan.
                      5: 
                      6:        * printcmd.c (print_formatted) [IEEE_FLOAT]:
                      7:        Detect nans and print specially.
                      8:        * valprint.c (val_print) [IEEE_FLOAT]: Same thing.
                      9: 
                     10:        * m68k-pinsn.c (convert_{to,from}_68881): Hand-assemble
                     11:        all the assembler code.
                     12: 
                     13:        * m-newsinit.h, m-news800.h: Two new files.
                     14: 
                     15: Thu Jan  7 22:25:16 1988  Richard Stallman  (rms at frosted-flakes)
                     16: 
                     17:        * valops.c (value_assign): Don't coerce the arg being stored in.
                     18:        Coercion is not right either for an array or for an enum.
                     19: 
                     20: Tue Jan  5 00:59:29 1988  Richard Stallman  (rms at frosted-flakes)
                     21: 
                     22:        * symtab.c (decode_line_1): Don't complain about no symtabs loaded
                     23:        until after trying the misc function table.
                     24: 
                     25: Sat Jan  2 13:16:08 1988  Richard Stallman  (rms at frosted-flakes)
                     26: 
                     27:        * stack.c (record_selected_frame): New fn to access
                     28:        the selected frame and its level.
                     29:        * infcmd.c (run_stack_dummy): Save and restore the selected
                     30:        frame and its level.
                     31: 
                     32: Wed Dec 30 18:44:41 1987  Richard Stallman  (rms at frosted-flakes)
                     33: 
                     34:        * valprint.c (type_print_varspec_prefix):
                     35:        Treat arrays just like functions.
                     36:        * valprint.c (type_print_varspec_{prefix,suffix}):
                     37:        When passed_a_ptr is handled, pass 0 for it in the recursive call.
                     38: 
                     39: Fri Dec 18 10:24:14 1987  Richard Stallman  (rms at frosted-flakes)
                     40: 
                     41:        * findvar.c (read_var_value): Share code between values really
                     42:        in registers and values in saved registers.
                     43:        Register short on a big-endian machine needs a VALUE_OFFSET.
                     44: 
                     45:        * findvar.c (locate_var_value): Offset the address of a
                     46:        saved register variable that's shorter than the register.
                     47: 
                     48: Thu Dec 17 08:26:31 1987  Richard Stallman  (rms at lucky-charms)
                     49: 
                     50:        * valprint.c (type_print_base): Print nameless bit fields
                     51:        to indicate gaps before bit fields.
                     52: 
                     53:        * source.c (select_source_symtab): Ignore .h files.
                     54:        Also, if a function `main' exists, make the default listing line
                     55:        the beginning of `main'.
                     56: 
                     57:        * breakpoint.c ({get,set}_breakpoint_commands):
                     58:        Commands to examine or set the pending breakpoint-commands.
                     59: 
                     60:        * infcmd.c (run_stack_dummy): Save and restore the breakpoint
                     61:        commands around the function call.
                     62: 
                     63:        * stack.c (return_command): Don't query or print if not interactive.
                     64: 
                     65:        * value.h (COERCE_ENUM): New macro: if arg is enum, convert to int.
                     66:        * value.h (COERCE_ARRAY): Do that, as well as old job.
                     67: 
                     68:        * valarith.c (value_binop, value_neg, value_lognot):
                     69:        Use COERCE_ENUM on the arguments.
                     70:        * valops.c (value_arg_coerce): Likewise.
                     71:        * valops.c (value_cast): AVOID coercing enums when arrays are.
                     72: 
                     73:        * eval.c (evaluate_subexp): In the BINOP_SUB case,
                     74:        use evaluate_subexp_with_coercion.
                     75: 
                     76:        * inflow.c (terminal_ours_1, terminal_inferior):
                     77:        Ignore inferior_thisrun_terminal since our terminal
                     78:        is the inferior's controlling terminal regardless.
                     79: 
                     80:        * m-sun3.h: Fix assembler syntax for kdb macros.
                     81: 
                     82:        * infcmd.c ({attach,detach}_command): New functions from Dave Taylor.
                     83:        * inflow.c (attach, detach): New functions from Dave Taylor.
                     84:        * infrun.c (attach_process): New function, middle-level.
                     85:        Does all the work of attaching a process, assuming there is no
                     86:        inferior yet, except for printing and querying.
                     87: 
                     88:        * infrun.c (clear_proceed_status): Clear `stop_after_attach'.
                     89:        * infrun.c (wait_for_inferior): Handle `stop_after_attach'.
                     90: 
                     91: Sat Dec 12 04:36:39 1987  Richard Stallman  (rms at corn-chex)
                     92: 
                     93:        * dbxread.c (end_symtab): The free_code for a symseg got
                     94:        from a file should be free_linetable.
                     95: 
                     96:        * dbxread.c: Allocate blockvector, blocks, symbols and symbol names
                     97:        from the symbol-obstack, and use free_linetable for all files.
                     98:        The typevector is still malloc'd, so put it in the free_ptr
                     99:        to get it freed.
                    100: 
                    101:        * symmisc.c (free_symtab): Always free the `free_ptr' if nonzero.
                    102:        `free_explicit' therefore now the same as `free_nothing'.
                    103: 
                    104:        * dbxread.c (define_symbol): Handle defn code 'c', used by
                    105:        fortran, which defines integer and real constant symbols.
                    106: 
                    107:        * symseg.h: Define LOC_CONST_BYTES for constants longer than a
                    108:        word.  New `bytes' alternative for the value of a symbol.
                    109: 
                    110:        * symtab.h (SYMBOL_VALUE_BYTES): Macro to access `bytes'.
                    111: 
                    112:        * findvar.c ({read,locate}_var_value): Handle LOC_CONST_BYTES.
                    113:        * printcmd.c (address_info): Handle LOC_CONST_BYTES.
                    114:        * symmisc.c (print_symbol): Handle LOC_CONST_BYTES.
                    115: 
                    116: Tue Dec  8 20:26:37 1987  Richard Stallman  (rms at frosted-flakes)
                    117: 
                    118:        * symtab.c (find_line_pc_range): Detection of last line in file
                    119:        was erroneous.
                    120: 
                    121: Fri Dec  4 21:52:52 1987  Richard Stallman  (rms at frosted-flakes)
                    122: 
                    123:        * dbxread.c (read_range_type): Accept the typenums as argument.
                    124:        Use read_type_number to read the subrange-of type.
                    125:        A type defined as a subrange of itself is void.
                    126: 
                    127: Thu Dec  3 12:45:10 1987  Richard Stallman  (rms at frosted-flakes)
                    128: 
                    129:        * inflow.c ({fetch,store}_inferior_registers): Support UMAX_PTRACE.
                    130: 
                    131:        * m-umax.h: New file, for Encore machines.
                    132: 
                    133:        * core.c (exec_file_command, etc): Decode COFF files.
                    134:        * core.c (core_file_command): Support UMAX_CORE format.
                    135:        * core.c (validate_files, exec_file_command):
                    136:        Set exec_mtime in exec_file_command so that COFF vs non-COFF
                    137:        differences appear all in one place.
                    138: 
                    139:        * coffread.c: New file from Dave Johnson.
                    140: 
                    141:        * core.c (specify_exec_file_hook): New function to specify
                    142:        a hook to be called by exec_file_command.  Last #ifdef X_WINDOWS gone.
                    143:        * xgdb.c (initialize): Specify a hook.
                    144: 
                    145:        * infrun.c, inferior.h: Replace stop_r0 and stop_r1 with an array
                    146:        `stop_registers' that will hold ALL the registers.
                    147:        * infcmd.c (run_stack_dummy): Get the value from `stop_registers'
                    148:        and copy all of that into BUFFER.
                    149:        * infcmd.c (finish_command): Specify `stop_registers'
                    150:        to `value_being_returned'.
                    151:        * values.c (value_being_returned): Use the new EXTRACT... macros.
                    152:        * values.c (set_return_value): Use new STORE_RETURN_VALUE macro.
                    153:        * valops.c (call_function): Allocate retbuf long enough for all regs.
                    154:        * m-*.h: New macros EXTRACT_RETURN_VALUE, STORE_RETURN_VALUE and
                    155:        EXTRACT_STRUCT_VALUE_ADDRESS that express machine-dependencies
                    156:        in where return values are stored.
                    157: 
                    158:        * valops.c (call_function): Flush default for CALL_DUMMY_START_OFFSET.
                    159:        Assume it is defined.
                    160:        * m-vax.h: Define CALL_DUMMY_START_OFFSET.
                    161: 
                    162:        * ns32k-pinsn.c (ns32k-localcount): Fix decoding of `enter' insn.
                    163:        * ns32k-pinsn.c (n32k_get_enter_addr): New fn used from m-umax.h.
                    164: 
                    165:        * m-*.h: Change INVALID_FLOAT to accept 2nd arg which is length
                    166:        of the float.
                    167:        * values.c (unpack_double): Pass the 2nd arg.
                    168:        * vax-pinsn.c (print_insn_arg): Pass the 2nd arg.
                    169:        * infcmd.c (registers_info): Pass the 2nd arg.
                    170: 
                    171: Wed Nov 25 15:06:55 1987  Richard Stallman  (rms at frosted-flakes)
                    172: 
                    173:        * Bug fixes by David Johnson (ddj%[email protected]).
                    174: 
                    175:        * symtab.c (list_symbols): Print typedef names, and don't call
                    176:        them `static'.
                    177: 
                    178:        * symmisc.c (print_symtabs): Allow immediate quit, and close the
                    179:        output file if that happens.
                    180: 
                    181:        * stack.c (frame_command): Declare args `unsigned' so a negative
                    182:        number is a frame address, not a level number.
                    183: 
                    184:        * source.c: Check for error-return from calls to `getwd'.
                    185: 
                    186:        * printcmd.c (address_info): Fix error in case of a function name.
                    187: 
                    188:        * inflow.c (create_inferior): Return the inferior pid properly.
                    189: 
                    190:        * inferior.h: Define `inferior_io_terminal'.
                    191:        * infrun.c (tty_command): New command to specify inferior_io_terminal.
                    192:        * inflow.c (new_tty): Open specified terminal for the inferior.
                    193:        * inflow.c (terminal_{ours,inferior}): Do nothing if inferior was
                    194:        started with its own terminal.
                    195:        * main.c (main): -t switch calls `tty_command'.
                    196: 
                    197:        * expread.y (rule for `block'): `copy_name' was called in wrong
                    198:        place and with wrong args.
                    199: 
                    200:        * dbxread.c: Entire file #ifdef READ_DBX_FORMAT.
                    201:        * m-*.h: Define READ_DBX_FORMAT.
                    202: 
                    203:        * breakpoint.c (initialize): Error in doc string of `info breakpoints'.
                    204: 
                    205: Wed Nov 11 12:57:28 1987  Richard Stallman  (rms at frosted-flakes)
                    206: 
                    207:        * ns32k-opcode.h, ns32k-pinsn.c: Two new files.
                    208:        * m-merlin.h: New file, for one 32000 box.
                    209: 
                    210: Mon Nov  9 10:31:42 1987  Brian Fox  (bfox at sugar-smacks)
                    211: 
                    212:        * eval.c (evaluate_subexp): Made the case of OP_FUNCALL use
                    213:        evaluate_subexp_with_coercion, so that array references would
                    214:        get converted into pointer references.
                    215: 
                    216: Mon Nov  9 05:50:24 1987  Richard Stallman  (rms at sugar-smacks)
                    217: 
                    218:        * breakpoint.c (ignore_command): Error if no arg.
                    219: 
                    220: Sat Nov  7 13:57:40 1987  Richard Stallman  (rms at frosted-flakes)
                    221: 
                    222:        * main.c (quit_command): Get rid of execfile before the kill_inferior.
                    223: 
                    224:        * xgdb.c: New file, interface to X windows.
                    225: 
                    226:        * main.c (main): Look for flag arguments before
                    227:        calling the initialization functions.  -nw switch sets
                    228:        `inhibit_windows' which xgdb.c looks at.
                    229:        * main.c (command_loop): Call the window hook function, if any.
                    230: 
                    231:        * source.c (get_filename_and_charpos): New function
                    232:        that interfaces to find_source_lines.
                    233:        * source.c (source_line_charpos, source_charpos_line):
                    234:        New functions translate source line number to char pos and vice versa.
                    235: 
                    236:        * breakpoint.c (describe_other_breakpoints): New subroutine
                    237:        to list all breakpoints at PC in a message about "other
                    238:        breakpoints".
                    239:        * breakpoint.c (break_command_1): Use describe_other_breakpoints.
                    240:        * breakpoint.c (set_breakpoint): Like break_command_1
                    241:        but takes arg predecoded into symtab and line.
                    242: 
                    243:        * core.c (exec_file_command): Call xgdb_display_exec_file.
                    244: 
                    245:        * valprint.c (type_print_base): For struct bitfields,
                    246:        print the bit size.
                    247: 
                    248: Thu Aug 20 02:46:47 1987  Richard M. Stallman  (rms at prep)
                    249: 
                    250:        * Version 2.4.
                    251: 
                    252:        * m68k-pinsn.c (print_insn_arg): Implement place = '3'.
                    253: 
                    254:        * findvar.c (write_register_bytes): Arg to
                    255:        store_inferior_registers should be -1: write all registers.
                    256: 
                    257:        * dbxread.c (symbol_file_command): If no arg,
                    258:        just discard all symbols.
                    259: 
                    260:        * core.c (myread): Flush the 4th arg (filename).
                    261:        * source.c (find_source_lines): Don't pass 4th arg.
                    262:        * symmisc.c (read_symsegs): Ditto.
                    263: 
                    264:        * dbxread.c (process_one_symbol): One call to `define_symbol'
                    265:        lacked 3rd arg.
                    266: 
                    267:        * inflow.c (write_inferior_memory): On failure, return the errno value.
                    268:        * core.c (write_memory): ditto.
                    269:        * breakpoint.c ({insert,remove}_breakpoints): ditto.
                    270:        * utils.c (print_sys_errmsg): Like perror_with_name but don't
                    271:        signal an error; also, the error code is an arg instead of from
                    272:        `errno'.
                    273:        * infrun.c : Save the value from insert_breakpoints and pass it to
                    274:        print_sys_errmsg.
                    275: 
                    276:        * main.c (input_from_terminal_p): Put in omitted `return'.
                    277: 
                    278:        * Makefile (expread.o): Use $(CC).
                    279: 
                    280: Sun Jun  7 04:42:51 1987  Richard M. Stallman  (rms at prep)
                    281: 
                    282:        * version.c: Version 2.3.
                    283: 
                    284:        * inflow.c (terminal_ours): Save fcntl flags correctly.
                    285:        * inflow.c (term_status_command):
                    286:        Print the tchars and ltchars structures, byte by byte.
                    287: 
                    288: Mon May 25 14:37:14 1987  Richard M. Stallman  (rms at prep)
                    289: 
                    290:        * version.c: Version 2.2.
                    291: 
                    292:        * breakpoint.c (do_breakpoint_commands):
                    293:        Advance breakpoint_commands before executing the command,
                    294:        in case command is `cont' and it hits another bpt with commands.
                    295: 
                    296: Sun May 24 20:45:04 1987  Richard M. Stallman  (rms at prep)
                    297: 
                    298:        * value.h: Declare `contents' long and cast its address to char *.
                    299: 
                    300:        * expread.y (prefixify_expression): Don't call alloca among the decls.
                    301: 
                    302:        * printcmd.c (print_variable_value): Flush unused local `space'.
                    303: 
                    304:        * main.c (execute_command): Barf on "user" like other class names.
                    305: 
                    306: Fri May 22 01:34:37 1987  Richard M. Stallman  (rms at prep)
                    307: 
                    308:        * m68k-pinsn.c (fetch_arg): New arg position 'j', for movec.
                    309:        (print_insn_arg): New arg syntax 'J', for movec.
                    310:        * m68k-opcode.h: movec uses 'Jj'.  Everything reformatted.
                    311:        bf... and cas... insns were corrected.
                    312: 
                    313:        * inflow.c (create_inferior): Fork and exec with given args and env.
                    314:        Call close_exec_file.
                    315:        (inferior_died): Record the fact that the inferior no longer exists.
                    316:        Call reopen_exec_file.
                    317: 
                    318:        * core.c (close_exec_file): New fn: Close the execchan if it's open.
                    319:        (reopen_exec_file): New fn: Reopen execchan if not currently open.
                    320: 
                    321:        * infrun.c (wait_for_inferior): Call inferior_died if it exits.
                    322: 
                    323:        * infcmd.c (run_command): Don't fork and exec; call create_inferior.
                    324: 
                    325:        * findvar.c (read_var_value): For reg var in a convertable reg,
                    326:        fetch reg in its own virtual type and then cast to variable's type.
                    327: 
                    328:        * symtab.h: Declare xmalloc to return char *.
                    329: 
                    330:        * dbxread.c (read_dbx_symtab): Record static text syms as
                    331:        misc-functions.  But if an assembler symbol supplies the address
                    332:        for a debugger symbol, don't record it as a misc-function.
                    333: 
                    334:        * utils.c (query): Do clearerr (stdin) frequently in case of C-d.
                    335: 
                    336:        * dbxread.c (process_one_symbol, define_symbol):
                    337:        Pass the stab's DESC down to define_symbol.
                    338:        DESC = 0 means GCC output: if type is "short", believe it.
                    339: 
                    340:        * dbxread.c (read_enum_type): Don't allocate the type here;
                    341:        take it as an argument.  (Like read_struct_type.)
                    342:        (read_type)): Before call to read_enum_type, allocate the type
                    343:        or get the one already allocated.
                    344: 
                    345:        * printcmd.c (print_frame_args): Print a comma before
                    346:        every arg except the first.
                    347: 
                    348: Wed May 13 00:36:00 1987  Richard M. Stallman  (rms at prep)
                    349: 
                    350:        * m68k-pinsn.c (convert_{to,from}_68881):
                    351:        Hand-assemble the fmoved and fmovex insns.
                    352: 
                    353:        * dbxread.c (define_symbol): For case 'p', a parameter,
                    354:        if specified type is short or char, change it to int.
                    355:        This is for how PCC handles arguments.
                    356:        Define new case 'P' that does what 'p' used to do.
                    357:        Maybe GCC will use this.
                    358: 
                    359: Mon May  4 21:52:44 1987  Richard M. Stallman  (rms at prep)
                    360: 
                    361:        * main.c (main): If SET_STACK_LIMIT_HUGE, set the
                    362:        run-time stack limit as high as it can go.
                    363:        * m-sun3.h, m-vax.h: define SET_STACK_LIMIT_HUGE.
                    364: 
                    365: Sun May  3 08:46:23 1987  Richard Mlynarik  (mly at prep)
                    366: 
                    367:        * command.c, expread.y, findvar.c, infcmd.c, inflow.c, utils.c,
                    368:        values.c, defs.h:  Various ANSI C compatibility changes
                    369:        ([email protected] <[email protected]>)
                    370: 
                    371:        * core.c, inflow.c: Fix calls to supply_register.
                    372:        * findvar.c (supply_register): Instead of register value as int,
                    373:        pass address of buffer in core containing contents in raw form.
                    374: 
                    375: Sat Apr 18 17:09:42 1987  Richard Mlynarik  (mly at prep)
                    376: 
                    377:        * main.c (command_loop):
                    378:        Do any cleanups made by a executing a command each time around.
                    379: 
                    380:        * source.c (directory_command):
                    381:        make_cleanup (free, dirname), not
                    382:        make_cleanup (free_current_contents, &dirname)
                    383:        (rlk <[email protected]>)
                    384: 
                    385: Mon Apr 13 20:28:26 1987  Leonard H. Tower Jr.  (tower at prep)
                    386: 
                    387:        * gdb.1: fixed typo and italicization errors.
                    388:        (<kgk%[email protected]> id AA16470;Sun,12 Apr 87 14:30:07 EST)
                    389: 
                    390: Sat Apr 11 15:41:01 1987  Richard Mlynarik  (mly at prep)
                    391: 
                    392:        * dbxread.c (read_dbx_symtab):
                    393:        No name for symbol => "" not 0 (avoid referencing memory 0)
                    394:        (tower <[email protected]>)
                    395: 
                    396: Mon Mar 30 22:24:07 1987  Leonard H. Tower Jr.  (tower at prep)
                    397: 
                    398:        * gdb.1: Unix style manual page pointing at internal gdb
                    399:        documentation, and info sub-system in GNU Emacs.
                    400: 
                    401: Fri Mar 20 12:07:15 1987  Richard M. Stallman  (rms at prep)
                    402: 
                    403:        * COPYING: Clarifications about distribution fees and mixing.
                    404:        * main.c (copying_info): Same changes.
                    405: 
                    406: Tue Mar 17 17:40:14 1987  Richard M. Stallman  (rms at prep)
                    407: 
                    408:        * values.c (unpack_field_as_long): Avoid >>= operator
                    409:        since ISI compiler has a bug.
                    410: 
                    411: Sat Mar  7 12:19:35 1987  Richard M. Stallman  (rms at prep)
                    412: 
                    413:        * GDB version 2.1.
                    414: 
                    415:        * values.c (unpack-field-as-long): Tests for endianness were broken.
                    416:        * findvar.c (read_var_value):
                    417:        Now we initialize the union as an int and test it as a char.
                    418: 
                    419: Sun Mar  1 16:16:20 1987  Richard M. Stallman  (rms at prep)
                    420: 
                    421:        * main.c (define_command): Command class symbols
                    422:        must be cast to int.
                    423: 
                    424: Mon Feb 23 02:47:44 1987  Richard M. Stallman  (rms at prep)
                    425: 
                    426:        * source.c (list_command): Reword error messages.
                    427:        New message for case of first arg not just a line-number
                    428:        and no symtab specified by it.
                    429: 
                    430: Sun Feb 22 21:15:19 1987  Richard M. Stallman  (rms at prep)
                    431: 
                    432:        * dbxread.c (compare_misc_functions):
                    433:        Compare the addresses as unsigned numbers.
                    434: 
                    435: Sun Feb 22 13:11:45 1987  Richard Mlynarik  (mly at prep)
                    436: 
                    437:        * main.c (define_command, document_command):
                    438:        Stuff was being unnecessarily malloced (-and- not freed!)
                    439: 
                    440:        * main.c (execute_command):
                    441:        User-defined commands don't take args.
                    442:        Don't confuse empty user command with no command.
                    443:        Replace bogus `etext' test with a comparison against
                    444:        class_user.
                    445: 
                    446:        * main.c (define_command):
                    447:        If the command of the specified name is built-in, note that when
                    448:        asking whether to redefine it (this is suppressed for class_alias
                    449:        -- should it not be?)
                    450: 
                    451:        * main.c (define_command):
                    452:        If command was previously built-in, don't preserve its
                    453:        documentation (otherwise could get error later when trying to free
                    454:        the non-malloced text of built-in documentation strings)
                    455: 
                    456: Tue Feb 17 16:23:57 1987  Richard Mlynarik  (mly at prep)
                    457: 
                    458:        * main.c (echo_command): Don't die if not given any arg.
                    459:        * main.c (cd_command):  Echo new cwd if interactive.
                    460: 
                    461: Thu Feb 12 11:22:56 1987  Richard M. Stallman  (rms at prep)
                    462: 
                    463:        * stack.c (initialize): "bt" now appears in help aliases.
                    464: 
                    465:        * Version 2.0 released.
                    466: 
                    467: Wed Feb 11 17:45:45 1987  Richard M. Stallman  (rms at prep)
                    468: 
                    469:        * m68k-opcode.h: Errors corrected in several instructions
                    470:        and reordering done for assembler's sake.
                    471: 
                    472:        * m-vax.h (POP_FRAME): End with call to set_current_frame.
                    473: 
                    474: Tue Feb 10 15:06:07 1987  Richard M. Stallman  (rms at prep)
                    475: 
                    476:        * infrun.c (wait_for_inferior): Set stop_print_frame to 1
                    477:        after checking breakpoint condition.
                    478: 
                    479:        * infcmd.c (run_stack_dummy): Save many flags.
                    480: 
                    481: Thu Feb  5 07:12:20 1987  Richard Mlynarik  (mly at prep)
                    482: 
                    483:        * source.c (directory_command):
                    484:        Step over `:'
                    485: 
                    486: Mon Feb  2 23:40:32 1987  Richard M. Stallman  (rms at prep)
                    487: 
                    488:        * infcmd.c (set_environment_command): Fix stupid error
                    489:        for case where no "=" appears in the string.
                    490: 
                    491: Mon Jan 26 13:46:52 1987  Richard M. Stallman  (rms at prep)
                    492: 
                    493:        * printcmd.c (print_frame_args): Round end-of-arg offset
                    494:        up rather than down to multiple of int.
                    495: 
                    496: Fri Jan 23 15:11:50 1987  Richard M. Stallman  (rms at prep)
                    497: 
                    498:        * source.c (directory_command): If dir is not added cause already
                    499:        present, print explanation.
                    500: 
                    501:        * infrun.c (proceed): Use read_pc (), not stop_pc,
                    502:        to get current pc to think about.  stop_pc could have been
                    503:        clobbered by call_function.
                    504: 
                    505: Fri Jan 23 15:00:55 1987  Richard Mlynarik  (mly at prep)
                    506: 
                    507:        * source.c (directory_command):
                    508:        If dir is already in source_path, don't append another copy of it.
                    509: 
                    510: Thu Jan 22 00:31:03 1987  Richard M. Stallman  (rms at prep)
                    511: 
                    512:        * Version 2.0.
                    513: 
                    514:        * blockframe.c (get_pc_function_start):
                    515:        Understand misc functions.
                    516: 
                    517:        * core.c (core_file_command):
                    518:        Copy all register contents into the array `registers'
                    519:        Save a.out header of executable file in core_aouthdr.
                    520:        Print name of executable file that was running, if we know
                    521:        where to find it.
                    522: 
                    523:        * core.c (exec_file_command):
                    524:        Save a.out header in exec_aouthdr and file's mtime
                    525:        in exec_mtime.
                    526: 
                    527:        * core.c (validate_files): Check that core file's a.out hdr
                    528:        matches exec file's.
                    529: 
                    530:        * New handling of registers:
                    531:        Now all registers are fetched once when the program stops or
                    532:        when a core file is selected.  Their contents are kept in
                    533:        `registers', an array of bytes.  This is done by
                    534:        `fetch_inferior_registers'.  `read_register', etc., just look
                    535:        there.  Writing a register works through
                    536:        `store_inferior_registers' which writes one or all registers
                    537:        from `registers' back to the inferior.
                    538: 
                    539:        A register now can have a "raw" data format and a "virtual"
                    540:        data format, which may require conversion or even be different sizes.
                    541:        The conversion can be different for different registers.
                    542:        For example, the 68000 cpu registers need no conversion
                    543:        and both raw and virtual size is 4, but the 68881 floating point
                    544:        registers have raw size 12 (for extended fmt) and virtual size 8
                    545:        (for double).  Macros in the m- file such as REGISTER_BYTES,
                    546:        REGISTER_BYTE, REGISTER_{RAW,VIRTUAL}_SIZE, and
                    547:        REGISTER_CONVERT_TO_{RAW,VIRTUAL} control these things.
                    548: 
                    549:        `read_register' and `write_register' are usable only on registers
                    550:        which hold an int and need no conversion (raw fmt = virtual fmt).
                    551:        For other registers, `read_register_bytes' is used, or
                    552:        `read_relative_register_raw_bytes'.
                    553: 
                    554:        * m-sun3.h: Define the 68881 fp registers.
                    555:        Know how to recognize insns that save them.
                    556:        Make dummy frames save them.
                    557: 
                    558:        * core.c (read_register, write_registers): Functions deleted.
                    559:        * findvar.c (read_register, write_registers): New functions,
                    560:        not the same as the old ones of the same name.
                    561: 
                    562:        * findvar.c (supply_register): Function used by
                    563:        fetch_inferior_registers, etc., to install the register
                    564:        values fetched from the inferior.
                    565: 
                    566:        * findvar.c (read_register_bytes, write_register_bytes):
                    567:        Read spec'd number of bytes from the byte-array `registers'.
                    568: 
                    569:        * findvar.c (read_relative_register_raw_bytes):
                    570:        Replaces old function `read_relative_register'; accepts
                    571:        address of where to store the contents; # bytes stored is size
                    572:        of the specified register in raw format.
                    573: 
                    574:        * findvar.c (value_of_register, read_var_value):
                    575:        Convert register values and values of register variables
                    576:        from raw format to virtual format.
                    577: 
                    578:        * findvar.c (locate_var_value): Like `read_var_value' but
                    579:        returns value for variable's address.
                    580: 
                    581:        * value.h: Add new field VALUE_REGNO to each value.  It holds
                    582:        register number to control virtual-to-raw conversion
                    583:        for assignments to the value.
                    584: 
                    585:        * valops.c (value_assign): Convert data from virtual to raw format
                    586:        if value came from a register variable.
                    587:        Use read_register_bytes and write_register_bytes.
                    588: 
                    589: 
                    590:        * infcmd.c (continue_command): Subtract 1 from arg
                    591:        before setting breakpoint's ignore-count.
                    592: 
                    593:        * infcmd.c (jump_command): Query if spec'd line is outside
                    594:        of the current function.
                    595: 
                    596:        * infcmd.c (finish_command): Now finish the selected frame,
                    597:        and no arg required.
                    598: 
                    599:        * infcmd.c (set_environment_command): Allow space to separate
                    600:        varname and value.
                    601: 
                    602:        * infcmd.c (registers_info): Print both raw and virtual data
                    603:        format if they differ.  Allow register name as arg.
                    604:        Ask for a Newline each 16 registers.
                    605: 
                    606:        * inflow.c (kill_inferior): call mark_breakpoints_out.
                    607:        * inflow.c ({fetch,store}_inferior_registers for Sun):
                    608:        Get the fp registers and store them in right places in
                    609:        `registers'.
                    610:        * inflow.c ({read,write}_inferior_register): Deleted.
                    611: 
                    612:        * infrun.c (wait_for_inferior): Single-stepping is not considered
                    613:        to have hit a breakpoint unless the pc before the step matches the
                    614:        address of the breakpoint.  Necessary on machines where
                    615:        breakpoints leave the pc incremented.
                    616: 
                    617:        If shell gets SIGSEGV, pass the signal silently to it.
                    618: 
                    619:        * m68k-pinsn.c, m68k-opcode.h:
                    620:        Add the 68881 instructions.  New operand codes `F', `I', `s'
                    621:        and `k' are needed for them.  New place codes `78tcik'.
                    622:        NEXTBYTE now skips a word but fetches just a byte.
                    623:        Explicit sign-extension removed from NEXTBYTE and NEXTWORD.
                    624:        NEXTSINGLE, NEXTDOUBLE, NEXTEXTEND and NEXTPACKED defined.
                    625:        Various changes to implement the new operand and place codes.
                    626:        print_index changed because displacement-size codes for
                    627:        word and long displacement were interchanged.
                    628: 
                    629:        * m68k-pinsn.c (convert_{from,to}_68881): Functions added
                    630:        to support REGISTER_CONVERT_TO_{RAW,VIRTUAL} on 68000.
                    631: 
                    632:        * main.c (main): Move around calls to setjmp.
                    633:        * main.c (define_command, document_command):
                    634:        Accept a from_tty argument instead of calling input_from_terminal_p.
                    635: 
                    636:        * printcmd.c (address_info): Print info on class and address
                    637:        of a specified symbol.  For register symbols, gives name of register.
                    638: 
                    639:        * printcmd.c (print_command): Remember explicitly whether
                    640:        `make_cleanup' was called.
                    641: 
                    642:        * printcmd.c (print_frame_args): Know how arg-addresses vary with
                    643:        data type on big-endian machines.
                    644: 
                    645:        * source.c (directory_command): Detect `:' in arg and reject it.
                    646:        Free the old directory-path.  Simplify things like `/.' in
                    647:        dirname.
                    648: 
                    649:        * source.c (openp): Simplify `./' in specified name.
                    650: 
                    651:        * source.c (find_source_lines): Compare source mtime against
                    652:        `exec_mtime' and warn if source is newer.
                    653: 
                    654:        * source.c (line_info): No arg means use last line listed
                    655:        or line following last one this command was used on.
                    656:        If from tty, clear out argument so Return is like `i li' without
                    657:        arg.
                    658: 
                    659:        * stack.c (frame_info): Print addresses registers are saved at.
                    660: 
                    661:        * stack.c (return_command): When asking for confirmation, give
                    662:        name of function that will be made to return.
                    663: 
                    664:        * valops.c (call_function): If function type is
                    665:        pointer-to-function, dereference it to compute return type.
                    666:        If pointer-to-object, assume function returns int.
                    667:        If char, assume that the value's address is the function address
                    668:        (because it's a misc functon).  If int, the value itself is the
                    669:        function address.
                    670: 
                    671:        * dbxread.c (compare_symbols): Sort register symbols
                    672:        before all others.
                    673: 
                    674:        * eval.c (evaluate_subexp_for_address): New function like
                    675:        `evaluate_subexp' but returns a value for the address where
                    676:        the subexpression's value would be located.
                    677: 
                    678:        * eval.c (evaluate_subexp_for_sizeof): New function like
                    679:        `evaluate_subexp' but returns a value for the size of the subexp.
                    680: 
                    681:        * eval.c (evaluate_subexp_with_coercion): Like `evaluate_subexp'
                    682:        but coerces arrays to pointers (without taking the time to
                    683:        read the array contents).
                    684: 
                    685:        * eval.c (evaluate_subexp): Use the three new functions above
                    686:        when appropriate instead of calling self recursively.
                    687: 
                    688: Wed Jan 14 17:00:03 1987  Richard Mlynarik  (mly at prep)
                    689: 
                    690:        * core.c (core_file_command):
                    691:        Use correct file in calls to perror_with_name
                    692: 
                    693: Mon Jan 12 03:34:35 1987  Richard Mlynarik  (mly at prep)
                    694: 
                    695:        * breakpoint.c (map_breakpoint_numbers):
                    696:        Err if no args not supplied, otherwise would get mpv.
                    697: 
                    698:        * main.c (main):
                    699:        Command-line arg "-d dir" adds dir to source-file directory
                    700:        search-list.
                    701: 
                    702: Sun Jan 11 19:19:52 1987  Richard Mlynarik  (mly at prep)
                    703: 
                    704:        * symmisc.c (free_all_symtabs):
                    705:        Don't call free on 0.
                    706: 
                    707:        * core.c (exec_file_command):
                    708:        Use correct name in call to perror_with_name.
                    709:        Record absolute pathname.
                    710:        Don't savestring an arg to concat.
                    711: 
                    712:        * dbxread.c (symbol_file_command):
                    713:        Record absolute name of pathname opened.
                    714:        Print a message if file doesn't have a symbol-table.
                    715:        Don't savestring an arg to concat.
                    716: 
                    717:        * source.c (openp):
                    718:        Add new arg filename_opened, which if non-zero will be set to a
                    719:        malloced string of the absolute name of the actual filename opened.
                    720: 
                    721:        * breakpoint.c (clear_command):
                    722:        If from_tty or cleared more than one breakpoint at location,
                    723:        print which bpts were deleted.
                    724: 
                    725:        * breakpoint.c (break_command_1, break_command, tbreak_command):
                    726:        If from_tty, mention any other breakpoints set at same location.
                    727: 
                    728:        * symtab.c (decode_line_1):
                    729:        If no symtabs, err mentioning `symbol-file' command rather than
                    730:        saying "function foo not defined"
                    731: 
                    732: Fri Jan  9 01:25:19 1987 Richard Mlynarik  (mly at prep)
                    733: 
                    734:        * main.c (set_prompt_command):
                    735:        Add support command "set-prompt"
                    736: 
                    737:        * printcmd.c (undisplay_command):
                    738:        Fix paren error to make "undisplay <number>" work.
                    739: 
                    740: Wed Jan  7 12:06:09 1987  Richard Mlynarik  (mly at prep)
                    741: 
                    742:        * main.c (print_gdb_version, gdb_version_info):
                    743:        Add command "info version" to report the version
                    744:        of gdb for use in bug reports.
                    745: 
                    746:        * infcmd.c:
                    747:        Ensure inferior_args always points to string starting with a space
                    748:        and is never 0. 
                    749: 
                    750:        * printcmd.c: (clear_displays, undisplay_command):
                    751:        Fix bug in clear_displays which led to looping.
                    752:        Make undisplay_command call it instead of wrong-looking code which
                    753:        looked at (display->number == 0) instead of (display == 0) to
                    754:        determine if it were at the end of the chain.
                    755: 
                    756: Mon Dec 15 20:57:06 1986  Richard M. Stallman  (rms at prep)
                    757: 
                    758:        * utils.c (query): Don't ignore a second line if given a null line.
                    759: 
                    760:        * infrun.c (normal_stop): Print "bug in shell" message
                    761:        only for a segmentation fault.
                    762: 
                    763:        * main.c (main): Read init file from home directory if any,
                    764:        before init file from current directory.
                    765: 
                    766: Thu Dec  4 09:05:35 1986  Richard M. Stallman  (rms at prep)
                    767: 
                    768:        * source.c (select_source_symtab): Don't ref thru arg if null.
                    769: 
                    770:        * m68k.opcode.h: For trap instruction code, use type T.
                    771:        * m68k-pinsn.c (print_insn_arg): Recognize new arg-code T
                    772:        and print the trap vector properly.
                    773: 
                    774:        * m-sun[23].h (FRAME_FIND_SAVED_REGS): Recognize a movl REG,-(sp)
                    775:        as a way to save one register.  Recognize clrw -(sp); movw -(sp)
                    776:        after saving regs as a way to save the PS register.  Adjust the
                    777:        way to find the starting pc of a stack dummy frame for the fact
                    778:        that these frames now save the PS.
                    779: 
                    780:        * m-sun[23].h (POP_FRAME): Restore PS register if frame saved it.
                    781: 
                    782:        * m-sun[23].h (PUSH_DUMMY_FRAME): Push the old PS register.
                    783: 
                    784:        * m-sun[23].h (CALL_DUMMY, etc.): Fix erroneous binary code for
                    785:        the addl #nnn,sp instruction.  Insert clrw -(sp); movw -(sp)
                    786:        to indicate that the PS has been saved.
                    787: 
                    788:        * infrun.c (wait_for_inferior): If inferior exits, call
                    789:        mark_breakpoints_out so it works to delete breakpoints afterward.
                    790: 
                    791:        * infrun.c (normal_stop): After popping a stack dummy frame,
                    792:        select the frame that we get to.
                    793: 
                    794:        * dbxread.c (process_one_symbol): Store new `depth' field
                    795:        in all context_stack elements created.  For N_RBRAC, test
                    796:        that depth matches that in the context_stack; if not, error.
                    797: 
                    798:        * dbxread.c (all callers of error): Make all error messages
                    799:        start "Invalid symbol data: " and end with value of symnum.
                    800:        Also change a few aborts to errors.
                    801: 
                    802: Mon Dec  1 20:20:37 1986  Richard M. Stallman  (rms at prep)
                    803: 
                    804:        * version.c: Version 1.11.
                    805: 
                    806:        * breakpoint.c (condition_command): If no condition spec'd,
                    807:        print "breakpoint N now unconditional".
                    808: 
                    809:        * breakpoint.c (commands_command): Give different error messages
                    810:        for cases of args not containing a breakpoint number
                    811:        and args containing anything after the breakpoint number.
                    812: 
                    813:        * commands.c (lookup_command): Don't store a zero in *p
                    814:        if have an undefined subcommand that is not an error.
                    815: 
                    816:        * commands.c (lookup_command): For recursive call,
                    817:        pass subcommand list properly.  Was passing the address
                    818:        of the word containing the list.
                    819: 
                    820:        * core.c ({core,exec}_file_name): If no arg, tell user
                    821:        what the effect is.
                    822: 
                    823:        * dbxread.c (define_symbol): Accept class code 'v'
                    824:        for static variable within a function.
                    825: 
                    826:        * dbxread.c (read_type): Now allow any plain number or
                    827:        pair of numbers in parens, with no code letter.  This means
                    828:        define new type same as type with specified number, or define
                    829:        it as void if specified number's type is not yet mentioned.
                    830: 
                    831:        * m68k-pinsn.c (print_insn_arg): Case of general operand
                    832:        in byte insn that happened to be immediate used wrong arg-size.
                    833: 
                    834:        * printcmd.c (set_next_address): Set next_address from arg
                    835:        and also set value of `$_' from it.
                    836: 
                    837:        * printcmd.c (do_examine): Save address in last_examine_address
                    838:        and value fetched to examine in last_examine_value.
                    839: 
                    840:        * printcmd.c (x_command): Copy last_examine_{address,value}
                    841:        into values of `$_' and `$__'.  Change `x' documentation string.
                    842: 
                    843:        * source.c (directory_command): Query when no args now says
                    844:        what new value it wants use for the path.
                    845: 
                    846:        * source.c (list_command): Don't die in cases like `list ,+30'.
                    847: 
                    848:        * source.c (line_info): Call `set_next_address' to make `x'
                    849:        display the text of the line.  Change `info list' doc string.
                    850: 
                    851: Sat Nov 29 07:59:29 1986  Richard M. Stallman  (rms at prep)
                    852: 
                    853:        * printcmd.c (undisplay_command): If get no arg,
                    854:        rather than crashing, query and then delete undisplay everything.
                    855: 
                    856: Fri Nov 28 15:43:52 1986  Richard M. Stallman  (rms at prep)
                    857: 
                    858:        * dbxread.c (process_one_symbol): If N_LBRAC sym
                    859:        has a greater value that N_RBRAC, ignore the
                    860:        N_LBRAC value and give the block zero length.
                    861: 
                    862: Tue Nov 25 03:10:12 1986  Richard M. Stallman  (rms at prep)
                    863: 
                    864:        * dbxread.c (process_one_symbol): Ignore N_NSYMS symbols
                    865:        that appear in Ultrix.
                    866: 
                    867: Sat Nov 22 22:49:06 1986  Richard M. Stallman  (rms at prep)
                    868: 
                    869:        * version.c: version 1.10.
                    870: 
                    871:        * valprint.c (type_print*):
                    872:        SHOW < 0 now means abbreviate struct/union members
                    873:        or enum values with `...'.  SHOW now decremented on
                    874:        each recursion in type_print_base.  Several places
                    875:        that used to check !show now check show <= 0.
                    876: 
                    877:        * valprint.c (val_print): Pass -1 for SHOW to type_print
                    878:        when printing typename inside parens or braces.
                    879: 
                    880:        * printcmd.c (print_command): If no value specified to print,
                    881:        print the value of $.
                    882: 
                    883:        * expression.h, expread.y, eval.c, expprint.c:
                    884:        OP_MEMVAL renamed UNOP_MEMVAL
                    885:        and now allows any expression, not just an integer address.
                    886:        It now has same format as UNOP_CAST and works almost like it.
                    887:        Each place that referred to it has been rewritten
                    888:        starting with a copy of the code that handles UNOP_CAST.
                    889:        Doc for `print' command changed for this.
                    890: 
                    891:        * source.c (init_source_path):
                    892:        Free and zero out any line_charpos's saved in source symtabs.
                    893: 
                    894:        * breakpoint.c (condition_command):
                    895:        Parse the condition in the environment of the code where the
                    896:        breakpoint is set.  This requires finding the breakpoint
                    897:        before parsing, so code is rearranged.
                    898: 
                    899:        * dbxread.c (dbx_alloc_type):
                    900:        New function given typenums returns the type for those typenums
                    901:        or allocates a new, empty type for those typenums and returns it.
                    902: 
                    903:        * symtab.c (smash_type_to_{pointer,function}):
                    904:        New functions modify an already-allocated type object
                    905:        to be a pointer to or function returning some given type.
                    906: 
                    907:        * dbxread.c (read_type): Uses dbx_alloc_type in many cases.
                    908:        Reading a pointer or function type now works by doing that,
                    909:        then reading the value type or type pointed to, then smashing
                    910:        it into the type already allocated.  This makes some fwd refs win.
                    911:        Likewise for structs and unions.
                    912: 
                    913:        * dbxread.c (read_struct_type): Now receives the type object
                    914:        as args.  Used to get typenums as args and look up the type
                    915:        itself.
                    916: 
                    917:        * dbxread.c (symbol_file_command):
                    918:        At very end, clear out any type name that `char *' has received.
                    919: 
                    920: Thu Nov 20 16:43:53 1986  Richard M. Stallman  (rms at prep)
                    921: 
                    922:        * m-sun2.h, m-sun3.h (FIND_FRAME_SAVED_REGS):
                    923:        Was incrementing address even for regs not saved.
                    924: 
                    925: Sun Nov 16 14:59:07 1986  Richard M. Stallman  (rms at prep)
                    926: 
                    927:        * values.c (value_field): Was adding in byte offset
                    928:        before calling unpack_field_as_long, which itself
                    929:        adds in the offset.  Now pass addr of start of structure.
                    930: 
                    931:        * infrun.c (normal_stop): Clean up inferior_pid conditionals:
                    932:        just return early if no inferior.
                    933: 
                    934: Thu Nov 13 15:45:50 1986  Richard M. Stallman  (rms at prep)
                    935: 
                    936:        * dbxread.c (struct header_file): add new field .instance
                    937:        to distinguish the various entries for one header file.
                    938: 
                    939:        * dbxread.c (process_one_symbol): Use the `value' of
                    940:        a N_BINCL or N_EXCL as the instance code for the header file.
                    941: 
                    942:        * dbxread.c (add_{new,old}_header_file):
                    943:        Accept an instance code as arg and treat it as if it were
                    944:        part of the file name for distinguishing and finding entries.
                    945: 
                    946:        * dbxread.c (add_new_header_file, read_type):
                    947:        Turn off the header_file_prev_index feature with #if 0.
                    948: 
                    949:        * values.c (unpack_field_as_long, modify_field):
                    950:        Run-time test to distinguish big and little endian machines
                    951:        and do shifting accordingly.
                    952: 
                    953: Tue Nov 11 00:31:18 1986  Richard M. Stallman  (rms at prep)
                    954: 
                    955:        * version.c: version 1.9.
                    956: 
                    957:        * breakpoint.c (delete_command):
                    958:        Don't query if 2nd arg is zero.
                    959: 
                    960:        * breakpoint.c (clear_breakpoints):
                    961:        Pass 2nd arg of zero to delete_command.
                    962: 
                    963: Sat Nov  8 23:29:19 1986  Richard M. Stallman  (rms at prep)
                    964: 
                    965:        * breakpoint.c (delete_command):
                    966:        Ask for confirmation when used with no arg (delete all).
                    967: 
                    968: Fri Nov  7 11:23:09 1986  Richard M. Stallman  (rms at prep)
                    969: 
                    970:        * infrun.c (start_inferior, wait_for_inferior):
                    971:        Eliminate `stop_in_shell' which was not being maintained right.
                    972:        New variable `running_in_shell' is set to 1 or 0 when the
                    973:        expected SIGTRAPs happen, and is simply examined at other times.
                    974: 
                    975:        * infrun.c (wait_for_inferior):
                    976:        If get SIGSEGV with running_in_shell == 1, it is sh
                    977:        allocating memory.  Pass the signal silently to the shell.
                    978: 
                    979:        * core.c (exec_file_command):
                    980:        data_{start,end} are adjusted unconditionally when an
                    981:        exec file is opened, so closing counter-adjustment is
                    982:        now unconditional as well.
                    983: 
                    984:        * printcmd.c (x_command):
                    985:        Don't erase the expression from the calling args
                    986:        if cllaed noninteractively (used to be clobbering
                    987:        definitions of user-defined commands).
                    988: 
                    989:        * source.c (list_command): likewise.
                    990: 
                    991: Wed Nov  5 09:41:00 1986  Richard M. Stallman  (rms at prep)
                    992: 
                    993:        * Makefile: New variable OBSTACK1 that people can use
                    994:        to make obstack.o a dependency of gdb.
                    995: 
                    996:        * breakpoint.c (initialize):
                    997:        Define new aliases "br", "bre" and "brea" for "break".
                    998: 
                    999: Sun Nov  2 21:16:06 1986  Richard Mlynarik  (mly at prep)
                   1000: 
                   1001:        * symmisc.c (read_symsegs):
                   1002:        Add an extra protection against invalid symbol-file
                   1003: 
                   1004:        * m-vax.h:
                   1005:        Set KERNEL_U_ADDR and STACK_END_ADDR non-4.2-specifically
                   1006: 
                   1007: Tue Oct 21 13:34:14 1986  Richard Mlynarik  (mly at prep)
                   1008: 
                   1009:        * breakpoints.c (initialize):
                   1010:        Delet reference to non-existent command "tenable" from doc of "enable"
                   1011: 
                   1012: Tue Oct 14 19:58:27 1986  Richard Mlynarik  (mly at prep)
                   1013: 
                   1014:        * printcmd.c (display_command, undisplay_command):
                   1015:        * infcmd.c (run_command):
                   1016:        Call dont_repeat. 
                   1017: 
                   1018: 
                   1019: Local Variables:
                   1020: mode: indented-text
                   1021: eval: (auto-fill-mode 1)
                   1022: left-margin: 8
                   1023: fill-column: 74
                   1024: version-control: never
                   1025: End:

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.