Follow us on Google+ Follow us on Facebook Follow us on Twitter

Opened 17 months ago

Last modified 17 months ago

#646 new enhancement

GDB stub for remote debugging

Reported by: Jakub Jermář Owned by:
Priority: major Milestone:
Component: helenos-debugging Version: mainline
Keywords: gsoc16, gsoc17 Cc:
Blocker for: Depends on:
See also:

Description (last modified by Jakub Jermář)

Implement GBD stub for remote debugging of HelenOS user processes.

Details
HelenOS currently lacks a feature-rich debugger such as GDB. HelenOS however already features a sophisticated framework for debugging and tracing of user space processes. The goal of this project would therefore be to implement a GDB stub for HelenOS that would communicate with a remote GDB over TCP/IP and/or some other transport using gdb's Remote Serial Protocol on one side and debug the debugged target via the HelenOS debugging framework on the other.

GDB already comes with an implementation of the Remote Serial Protocol on the stub side, but it may be necessary to implement this functionality from scratch due to licensing issues and the intrusiveness of the GDB sources.

What Gains and Benefits will this bring?
Upon the completion of this project it would be possible to debug running HelenOS user processes, including drivers and servers, with a full-fledged debugger and all the comforts it offers, such as symbols, debug information and the possibility to use a GUI frontend, without actually porting GDB itself to HelenOS.
Difficulty
medium
Required skills
A successful applicant will have good programming skills in the C language and the ability to survive in a non-standard non-POSIX application environment. HelenOS uses a non-standard networking API for TCP/IP communication, so familiarity with basic networking concepts and ability to quickly grasp new APIs is a plus. The debugging part may require studying of kernel code and modifications of the debugging framework.
Documentation
Possible mentors
HelenOS Core Team, Jakub Jermar, Jiri Svoboda

Change History (1)

comment:1 Changed 17 months ago by Jakub Jermář

Description: modified (diff)
Note: See TracTickets for help on using tickets.