* command.c (shell_escape, make_command, _initialze_command):
[deliverable/binutils-gdb.git] / gdb / Projects
CommitLineData
dd3b648e
RP
1
2 Suggested projects for aspiring or current GDB hackers
3 ======================================================
4
5 (You should probably chat with bug-gdb@cygnus.com to make sure that
6 no one else is doing the project you chose).
7
8Rewrite proceed, wait_for_inferior, and normal_stop to clean them up.
9Suggestions:
10
11 1) Make each test in wait_for_inferior a seperate subroutine
12 call.
13 2) Combine wait_for_inferior and normal_stop to clean up
14 communication via global variables.
15 3) See if you can find some way to clean up the global
16 variables that are used; possibly group them by data flow
17 and information content?
18
19Work out some kind of way to allow running the inferior to be done as
20a sub-execution of, eg. breakpoint command lists. Currently running
21the inferior interupts any command list execution. This would require
22some rewriting of wait_for_inferior & friends, and hence should
23probably be done in concert with the above.
24
25Add function arguments to gdb user defined functions.
26
27Add convenience variables that refer to exec file, symbol file,
28selected frame source file, selected frame function, selected frame
29line number, etc.
30
31Add a "suspend" subcommand of the "continue" command to suspend gdb
32while continuing execution of the subprocess. Useful when you are
33debugging servers and you want to dodge out and initiate a connection
34to a server running under gdb.
35
36Work out and implement a reasonably general mechanism for multi-threaded
37processies. There are parts of one implemented in convex-dep.c, if
38you want an example.
39
40Add stab information to allow reasonable debugging of inline functions
41(possibly they should show up on a stack backtrace? With a note
42indicating that they weren't "real"?).
43
44Implement support for specifying arbitrary locations of stack frames
45(in practice, this usually requires specification of both the top and
46bottom of the stack frame (fp and sp), since you *must* retrieve the
47pc that was saved in the innermost frame).
48
49Modify the naked "until" command to step until past the current source
50line, rather than past the current pc value. This is tricky simply
51because the low level routines have no way of specifying a multi-line
52step range, and there is no way of saying "don't print stuff when we
53stop" from above (otherwise could just call step many times).
54
55Modify the handling of symbols grouped through BINCL/EINCL stabs to
56allocate a partial symtab for each BINCL/EINCL grouping. This will
57seriously decrease the size of inter-psymtab dependencies and hence
58lessen the amount that needs to be read in when a new source file is
59accessed.
60
61Do an "x/i $pc" after each stepi or nexti.
62
63Modify all of the disassemblers to use printf_filtered to get correct
64more filtering.
65
66Modify gdb to work correctly with Pascal.
67
68Rewrite macros that handle frame chaining and frameless functions.
69They should be able to tell the difference between start, main, and a
70frameless function called from main.
71
72Work out what information would need to be included in an executable
73by the compiler to allow gdb to debug functions which do not have a
74frame pointer. Modify gdb and gcc to do this.
75
76When `attached' to a program (via either OS support or remote
77debugging), gdb should arrange to catch signals which the terminal
78might send, as it is unlikely that the program will be able to notice
79them. SIGINT and SIGTSTP are obvious examples.
80
81Enhance the gdb manual with extra examples where needed.
82
83Arrange for list_command not to use decode_line_1 and thus not require
84symbols to be read in simply to read a source file.
85
3f2e006b
JG
86Add a command for searching memory, a la adb. It specifies size,
87mask, value, start address. ADB searches until it finds it or hits
88an error (or is interrupted).
89
dd3b648e
RP
90# Local Variables:
91# mode: text
92# End:
This page took 0.068139 seconds and 4 git commands to generate.