Rough GSoc proposal for project LLDB

RISHABH GUPTA rishabh9511 at gmail.com
Tue Mar 22 07:28:38 UTC 2016


I have included the Time Line which contains the detailed description about
what I will be working on and when

On Sat, Mar 19, 2016 at 12:51 PM, RISHABH GUPTA <rishabh9511 at gmail.com>
wrote:

> 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.
>
>

*Time-line :*
During the summer I would like to concentrate on making the debugger
architecture generic.The entire work can be divided into 2 sub categories :

1.*Pre-Process Set-up :-* This includes everything that needs to be set-up
before Gdb or LLDB starts


   - First 2 weeks(23rd May to 5th June) - In this period I will work on
   the files that are used before the user chooses to debug a program  .This
   will include  setting up the Gdb Output widget ,Disassemble widget,Memory
   view widget etc.
   - Next 4 weeks(6th June to 6th July) - In this period  I will
   concentrate on the files that are used after the user chooses to debug a
   program.This will include setting up the session,Breakpoint Controller
   ,Variable Controller, Frame Stack Model etc.


2.*Post-Process Set-up :- *This includes everything that needs to be set-up
after Gdb or LLDB starts

   - 5 weeks(7th July to 14th August) :- Once the process starts we need to
   start handling the output being returned by the process.Here I will try to
   make maximum use of Gdb/MI .This will include making the code that does the
   parsing generic(MI/parser,MI/lexer,tokens)


*Last Week(15th August to 23rd August) : *In this period I will do the
documentation(will also be done prior to this period) and clean up the code





>
>
> *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/20160322/6f0e0ab2/attachment.html>


More information about the KDevelop-devel mailing list