Rough GSoc proposal for project LLDB

RISHABH GUPTA rishabh9511 at gmail.com
Sat Mar 19 07:21:20 UTC 2016


Hello all,


*INTRODUCTION:*

This project requires writing a front-end for the LLDB debugger.Thanks to
GDB and LLDB for providing Machine Interface(MI)  .Since MI is specifically
intended to  support the development of systems which use debugger as just
one small component of a  larger system,it makes the job of writing a
front-end easier .So basically this project requires making  use of LLDB/MI
which is nothing but GDB/MI command layer on top of LLDB. KDevelop already
has GDB integrated which makes use of GDB/MI and since LLDB/MI makes use of
GDB/MI there are few things that can be shared between the two:

1. MI commands
Most of commands are the same .
https://github.com/llvm-mirror/lldb/blob/7535162178eada833e72a5525fc26dcc04e7331e/tools/lldb-mi/MICmdCommands.cpp
lists all the commands that have been implemented in LLDB/MI .

2. Output format:
Output returned by both the MI's is similar .


*APPROACH FOR INTEGRATING THE PLUGIN:*

As the initial steps required to start any of the two plugins(LLDB OR GDB)
would remain the same it will be a good idea to re-use Gdb's code ,make it
generic, and then make LLDB and GDB use it, otherwise there will be a lot
of code duplication. This includes making the plugin available which is
handled by debuggerplugin.cpp,setting up the debugsession which is handled
by debugsession.cpp and so on

*Code re-usability offered by GDB/MI:*
Since most of the commands are same and also the output returned by both
the MI's is very similar ,we get the  benefit of reusing the GDB/MI parser
.For this GDB/MI code should be refactored and then should be made
available to GDB and LLDB.



*AVAILABILITY:*
My exams are scheduled from 10th may to 24th may .So during this period I
won't be active and prior to this(i.e few weeks before exams) I will be
less active because of the practicals and other project submissions.After
24th may I am free and have nothing scheduled for the vacations .


*What  will I deliver :*
1.A generic debugger architecture such that it becomes usable by GDB and
LLDB
2.Making Gdb a better plugin by solving the bugs


*About Me:*I am a student currently in third year ,pursuing Bachelor of
technology in computer science from Shaheed Sukhdev College Of Business
Studies(Delhi University),India.



*What I have done for KDevelop:*
Worked on two bugs:
https://git.reviewboard.kde.org/r/125549/  -  this has been submitted
https://git.reviewboard.kde.org/r/125664/  - Solves the issue but I plan to
work on it again.

Work on LLDB plugin
https://github.com/rish9511/kdevelop/tree/lldbtest





*WORK ON OTHER KDE PROJECTS:*
1.AMAROK
Helped in porting it to kf5 frameworks by solving 2 bugs:

https://git.reviewboard.kde.org/r/125872/
https://git.reviewboard.kde.org/r/125593/

2.GCompris:
Made a search feature for  it.
https://github.com/rish9511/GCompris-qt/tree/searchfeature -- The work has
been completed but has not been merged.


*Why I want to work on the project:*

1.I think working on such projects or any open source project in general is
a great utilization of time as one  learns a lot  .

2. I can't stress this enough:Getting to work with great developers

I would like to get some feedback on this .Is there  anything that I have
not explained enough or anything that I should include/delete ,please
suggest .

Cheers,
Rishabh
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20160319/ac4ac58f/attachment.html>


More information about the KDevelop-devel mailing list