📄 projects
字号:
Suggested projects for aspiring or current GDB hackers ====================================================== (You should probably chat with bug-gdb@cygnus.com to make sure that no one else is doing the project you chose).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 asa sub-execution of, eg. breakpoint command lists. Currently runningthe inferior interupts any command list execution. This would requiresome rewriting of wait_for_inferior & friends, and hence shouldprobably 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 frameline number, etc.Add a "suspend" subcommand of the "continue" command to suspend gdbwhile continuing execution of the subprocess. Useful when you aredebugging servers and you want to dodge out and initiate a connectionto a server running under gdb.Work out and implement a reasonably general mechanism for multi-threadedprocessies. There are parts of one implemented in convex-dep.c, ifyou want an example.Add stab information to allow reasonable debugging of inline functions(possibly they should show up on a stack backtrace? With a noteindicating that they weren't "real"?).Implement support for specifying arbitrary locations of stack frames(in practice, this usually requires specification of both the top andbottom of the stack frame (fp and sp), since you *must* retrieve thepc that was saved in the innermost frame).Modify the naked "until" command to step until past the current sourceline, rather than past the current pc value. This is tricky simplybecause the low level routines have no way of specifying a multi-linestep range, and there is no way of saying "don't print stuff when westop" from above (otherwise could just call step many times).Modify the handling of symbols grouped through BINCL/EINCL stabs toallocate a partial symtab for each BINCL/EINCL grouping. This willseriously decrease the size of inter-psymtab dependencies and hencelessen the amount that needs to be read in when a new source file isaccessed. Do an "x/i $pc" after each stepi or nexti. Modify all of the disassemblers to use printf_filtered to get correctmore filtering.Modify gdb to work correctly with Pascal.Rewrite macros that handle frame chaining and frameless functions.They should be able to tell the difference between start, main, and aframeless function called from main.Work out what information would need to be included in an executableby the compiler to allow gdb to debug functions which do not have aframe pointer. Modify gdb and gcc to do this.When `attached' to a program (via either OS support or remotedebugging), gdb should arrange to catch signals which the terminalmight send, as it is unlikely that the program will be able to noticethem. SIGINT and SIGTSTP are obvious examples.Enhance the gdb manual with extra examples where needed.Arrange for list_command not to use decode_line_1 and thus not requiresymbols to be read in simply to read a source file.Add a command for searching memory, a la adb. It specifies size,mask, value, start address. ADB searches until it finds it or hitsan error (or is interrupted).# Local Variables:# mode: text# End:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -