(sim_resume): Clarify use of SIGGNAL.
[deliverable/binutils-gdb.git] / gdb / TODO
index 3804cb03118b1faf27413977455bb4700ee570ca..463d1cc34633d9c54f4309efdcbd1cb05a0ffbf3 100644 (file)
--- a/gdb/TODO
+++ b/gdb/TODO
@@ -1,11 +1,30 @@
 If you find inaccuracies in this list, please send mail to
-bug-gdb@prep.ai.mit.edu. 
+bug-gdb@prep.ai.mit.edu.  If you would like to work on any of these,
+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.
+
+Document trace machinery.
+
+Document overlay machinery.
+
+Extend .gdbinit mechanism to specify name on command line, allow for
+lists of files to load, include function of --tclcommand.
+
+@c This does not work (yet if ever).  FIXME.
+@c @item --parse=@var{lang} @dots{}
+@c Configure the @value{GDBN} expression parser to parse the listed languages.
+@c @samp{all} configures @value{GDBN} for all supported languages.  To get a
+@c list of all supported languages, omit the argument.  Without this
+@c option, @value{GDBN} is configured to parse all supported languages.
+
+Add an "info bfd" command that displays supported object formats,
+similarly to objdump -i.
 
 START_INFERIOR_TRAPS_EXPECTED need never be defined to 2, since that
 is its default value.  Clean this up.
@@ -58,7 +77,7 @@ as unused statics functions.
 
 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
@@ -103,10 +122,9 @@ blockframe.c, and plenty more. (I count 634 as of 940621 - sts)
 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.
@@ -178,7 +196,9 @@ but not get too snowed if it finds references to the older copy.
 
 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
@@ -272,6 +292,194 @@ Possible feature: A version of the "disassemble" command which shows
 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.
+
+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).
+
+Remove the range and type checking code and documentation, if not
+going to implement.
 
+# Local Variables:
+# mode: text
+# End:
This page took 0.027489 seconds and 4 git commands to generate.