Changes between Initial Version and Version 1 of Ticket #646


Ignore:
Timestamp:
2016-02-18T21:47:30Z (9 years ago)
Author:
Jakub Jermář
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #646 – Description

    initial v1  
    1 Implement a GBD stub for remote debugging of HelenOS user processes.
     1Implement GBD stub for remote debugging of HelenOS user processes.
     2
     3 Details::
     4  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.
     5
     6  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.
     7
     8 What Gains and Benefits will this bring?::
     9  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.
     10
     11 Difficulty::
     12  medium
     13
     14 Required skills::
     15  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.
     16
     17 Documentation::
     18  * [wiki:Tracing Using the Syscall/IPC Tracer]
     19  * [http://www.helenos.org/doc/theses/js-thesis.pdf Dynamic linker and debugging/tracing interface for HelenOS]
     20  * [https://sourceware.org/gdb/onlinedocs/gdb/ Debugging with GDB]
     21  * [https://sourceware.org/gdb/onlinedocs/gdb/Remote-Protocol.html Remote Serial Protocol]
     22  * [https://sourceware.org/gdb/onlinedocs/gdb/Remote-Stub.html Implementing a Remote Stub]
     23
     24 Possible mentors::
     25  HelenOS Core Team, Jakub Jermar, Jiri Svoboda