If you find inaccuracies in this list, please send mail to
+you should consider sending mail to the same address, to find out
+whether anyone else is working on it.
General To Do List
------------------
-This to do list is probably not up to date, and opinions may vary
-about the importance or even desirability of some of the items.
+This list is probably not up to date, and opinions vary about the
+importance or even desirability of some of the items.
START_INFERIOR_TRAPS_EXPECTED need never be defined to 2, since that
is its default value. Clean this up.
Perhaps "i source" should take an argument like that of "list".
-See if coredep.c's fetch_core_registers can be used on more machines.
+See if core-aout.c's fetch_core_registers can be used on more machines.
E.g. MIPS (mips-xdep.c).
unpack_double() does not handle IEEE float on the target unless the host
to get to that spot by accident. E.g. "n" over execute_command which has
an error.
-Watchpoints seem not entirely reliable, though they haven't failed me recently.
-
-"set zeroprint off", don't bother printing members of structs which are entirely
-zero. Useful for those big structs with few useful members.
+"set zeroprint off", don't bother printing members of structs which
+are entirely zero. Useful for those big structs with few useful
+members.
GDB does four ioctl's for every command, probably switching terminal modes
to/from inferior or for readline or something.
Generalize and Standardize the RPC interface to a target program,
improve it beyond the "ptrace" interface, and see if it can become a
-standard for remote debugging.
+standard for remote debugging. (This is talking about the vxworks
+interface. Seems unlikely to me that there will be "a standard" for
+remote debugging anytime soon --kingdon, 8 Nov 1994).
Remove all references to:
text_offset
both source and assembly code ("set symbol-filename on" is a partial
solution).
-xcoffexec.c should be eliminated, contents going into either exec.c
-or rs6000-nat.c.
+investigate "x/s 0" (right now stops early) (I think maybe GDB is
+using a 0 address for bad purposes internally).
+
+Make "info path" and path_command work again (but independent of the
+environment either of gdb or that we'll pass to the inferior).
+
+Make GDB understand the GCC feature for putting octal constants in
+enums. Make it so overflow on an enum constant does not error_type
+the whole type. Allow arbitrarily large enums with type attributes.
+Put all this stuff in the testsuite.
+
+Make TYPE_CODE_ERROR with a non-zero TYPE_LENGTH more useful (print
+the value in hex; process type attributes). Add this to the
+testsuite. This way future compilers can add new types and old
+versions of GDB can do something halfway reasonable.
+
+Clean up formatting of "info registers" on MIPS and 88k. See if it
+is possible to do this generically across all target architectures.
+
+GDB gets bfd/corefile.c and gdb/corefile.c confused (this should be easy to
+repeat even with something more recent than GDB 4.9).
+
+Check that unmatched RBRAC doesn't abort().
+
+Fix mdebugread.c:parse_type to do fundamental types right (see
+rs6000_builtin_type in stabsread.c for what "right" is--the point is
+that the debug format fixes the sizes of these things and it shouldn't
+depend on stuff like TARGET_PTR_BIT and so on. For mdebug, there seem
+to be separate bt* codes for 64 bit and 32 bit things, and GDB should
+be aware of that). Also use a switch statement for clarity and speed.
+
+Investigate adding symbols in target_load--some targets do, some
+don't.
+
+Put dirname in psymtabs and change lookup*symtab to use dirname (so
+/foo/bar.c works whether compiled by cc /foo/bar.c, or cd /foo; cc
+bar.c).
+
+Merge xcoffread.c and coffread.c. Use breakpoint_re_set instead of
+fixup_breakpoints.
+
+Fix byte order and int size sins in tm-a29k.h
+(EXTRACT_RETURN_VALUE). Perhaps should reproduce bug and verify fix
+(or perhaps should just fix it...).
+
+Make a watchpoint on a constant expression an error (or warning
+perhaps)
+
+Make a watchpoint which contains a function call an error (it is
+broken now, making it work is probably not worth the effort).
+
+Re-do calls to signal() in remote.c, and inflow.c (set_sigint_trap and
+so on) to be independent of the debugging target, using target_stop to
+stop the inferior. Probably the part which is now handled by
+interrupt_query in remote.c can be done without any new features in
+the debugging target.
+
+New test case based on weird.exp but in which type numbers are not
+renumbered (thus multiply defining a type). This currently causes an
+infinite loop on "p v_comb".
+
+Nuke baseclass_addr.
+
+Nuke USG define.
+
+"source file more recent" loses on re-read
+
+Fix 386 floating point so that floating point registers are real
+registers (but code can deal at run-time if they are missing, like
+mips and 68k). This would clean up "info float" and related stuff.
+
+Look at Solaris bug in interrupt.exp. Can get out of syscall with
+PRSABORT (syscall will return EINTR) but merely doing that leads to a
+"can't read memory" error.
+
+gcc -g -c enummask.c then gdb enummask.o, then "p v". GDB complains
+about not being able to access memory location 0.
+
+-------------------- enummask.c
+enum mask
+{
+ ANIMAL = 0,
+ VEGETABLE = 1,
+ MINERAL = 2,
+ BASIC_CATEGORY = 3,
+
+ WHITE = 0,
+ BLUE = 4,
+ GREEN = 8,
+ BLACK = 0xc,
+ COLOR = 0xc,
+
+ ALIVE = 0x10,
+
+ LARGE = 0x20
+} v;
+
+If try to modify value in file with "set write off" should give
+appropriate error not "cannot access memory at address 0x65e0".
+
+Why do we allow a target to omit standard register names (NO_STD_REGS
+in tm-z8k.h)? I thought the standard register names were supposed to
+be just that, standard.
+
+Make DEBUG_EXPRESSIONS a maintenance command, dependent on
+MAINTENANCE_COMMANDS.
+
+Allow core file without exec file on RS/6000.
+
+Make sure "shell" with no arguments works right on DOS.
+
+Make gdb.ini (as well as .gdbinit) be checked on all platforms, so
+the same directory can be NFS-mounted on unix or DOS, and work the
+same way.
+
+cd ~/tmp/<M-?> causes infinite loop (where ~/tmp is a directory).
+
+Get SECT_OFF_TEXT stuff out of objfile_relocate (might be needed to
+get RS/6000 to work right, might not be immediately relevant).
+
+Clean up add_toc_to_loadinfo
+
+Think about attached processes and sharing terminal.
+
+John sez in reference to ignoring errors from tcsegpgrp if attach_flag:
+set_tty_state should not have any trouble with attached processes.
+Instead, the tty handling should leave the pgrp of the tty alone when
+attaching to processes (perhaps pass terminal_init_inferior a flag
+saying whether we're attaching).
+
+PAGE_SIZE redefined warnings on AIX. Probably should be using
+BFD_PAGE_SIZE throughout BFD.
+
+Rewrite proceed, wait_for_inferior, and normal_stop to clean them up.
+Suggestions:
+
+ 1) Make each test in wait_for_inferior a seperate subroutine
+ call.
+ 2) Combine wait_for_inferior and normal_stop to clean up
+ communication via global variables.
+ 3) See if you can find some way to clean up the global
+ variables that are used; possibly group them by data flow
+ and information content?
+
+Work out some kind of way to allow running the inferior to be done as
+a sub-execution of, eg. breakpoint command lists. Currently running
+the inferior interupts any command list execution. This would require
+some rewriting of wait_for_inferior & friends, and hence should
+probably be done in concert with the above.
+
+Add function arguments to gdb user defined functions.
+
+Add convenience variables that refer to exec file, symbol file,
+selected frame source file, selected frame function, selected frame
+line number, etc.
+
+Add a "suspend" subcommand of the "continue" command to suspend gdb
+while continuing execution of the subprocess. Useful when you are
+debugging servers and you want to dodge out and initiate a connection
+to a server running under gdb.
+
+Add stab information to allow reasonable debugging of inline functions
+(possibly they should show up on a stack backtrace? With a note
+indicating that they weren't "real"?).
+
+Modify the naked "until" command to step until past the current source
+line, rather than past the current pc value. This is tricky simply
+because the low level routines have no way of specifying a multi-line
+step range, and there is no way of saying "don't print stuff when we
+stop" from above (otherwise could just call step many times).
+
+Modify the handling of symbols grouped through BINCL/EINCL stabs to
+allocate a partial symtab for each BINCL/EINCL grouping. This will
+seriously decrease the size of inter-psymtab dependencies and hence
+lessen the amount that needs to be read in when a new source file is
+accessed.
+
+Do an "x/i $pc" after each stepi or nexti.
+
+Modify all of the disassemblers to use printf_filtered to get correct
+more filtering.
+
+Modify gdb to work correctly with Pascal.
+
+Add a command for searching memory, a la adb. It specifies size,
+mask, value, start address. ADB searches until it finds it or hits
+an error (or is interrupted).
+# Local Variables:
+# mode: text
+# End: