This page lists ideas for projects which GDB would like to have implemented by GSoC students. We may also consider items which are not in this list. Please discuss your chosen idea with the GDB community before applying for the GSoC. You can find us in the #gdb channel at Freenode, but we prefer that GSoC discussions happen in the GDB mailing list, namely gdb [at] sourceware.org
Important: GDB is a project under the Free Software Foundation, which requires that all contributions incorporated by its projects have their copyrights assigned to the FSF. Because of this, you need to have your copyright assignment papers on file before you can start working on any GSoC project for GDB. More information about this is in this page. Please contact the GDB community (on IRC or mailing list) if you have questions about this requirement.
Students can work on GDB ideas through the GNU Project organization. Please read the GNU guidelines for Summer of Code projects, it has good tips which will help you submit a proposal with more chances of being successful.
We collect ideas for the GDB project in the ProjectIdeas page. The ones we think would make interesting GSoC projects were cherry-picked to this page, and expanded. You are of course welcome to submit proposals for other ideas from that page, or even ideas of your own.
If you are seriously considering and preparing to work on a GSoC project in GDB, read the DeveloperTips, the GDB Internals document (very incomplete, but gives an idea on how GDB is organized internally) and the CONTRIBUTE document in <gdb-src>/gdb/CONTRIBUTE.
Help with Python scripting support
Some things a student could work on:
Tromey's plan for python inferiors, threads, and events (also, see the other messages in the thread).
- Support events for signals received by the inferior, expanding on the work above.
- Support for writing useful "executables" purely in Python. This would mean modifying the gdb startup sequence (so a script could be used in a pipeline) and maybe adding command-line options. One example of a tool like this would be a generalized strace, like frysk's ftrace. There's initial support for this already, but it needs to be expanded.
- Provide a suitable mechanism for GDB to ship Python scripts, possibly based on the "require" command which is implemented in the Python branch.
The PythonGdb page has more ideas for future work.
Support pipes in the run command (this may be too small for a GSoC)
An interested student mentioned that he will work on this while GSoC doesn't start.
Support tracepoints in gdbserver
Fix bugs in the bugzilla
GDB has a lot of bug tickets open in bugzilla, mainly because no one has been attention to them in the past few years. Having someone sift through the backlog and fix those bugs (or close them if it's verified that they aren't valid anymore) would be a great help.
This project would be very open-ended, with the mentor and student choosing bugs to fix as they progress.
You can use a bugzilla query to get the complete list of bugs. A lot of them are old and/or unconfirmed, so the first step is to always confirm if you can reproduce the bug first.
A really incomplete sample of some bug tickets which we have there:
- feature requests:
code cleanups (we also have some of those in the ProjectPlan, and a lot of deprecated_* functions in the source code):
In addition, if I understood teawater well, we need help in writing testcases for reversible debugging. Since it doesn't sound like it would take the whole summer to work on this, an interested student could work on testcases for reversible debugging as part of the bugzilla fixes task.