<div dir="ltr">I have included the Time Line which contains the detailed description about what I will be working on and when  <br><div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Mar 19, 2016 at 12:51 PM, RISHABH GUPTA <span dir="ltr"><<a href="mailto:rishabh9511@gmail.com" target="_blank">rishabh9511@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><div><div>Hello all,<br><br></div><b>INTRODUCTION:<br></b></div><br>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 <span>intended</span> 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:<br><br></div><div>1. MI commands<br></div><div>Most of commands are the same .<a href="https://github.com/llvm-mirror/lldb/blob/7535162178eada833e72a5525fc26dcc04e7331e/tools/lldb-mi/MICmdCommands.cpp" target="_blank">https://github.com/llvm-mirror/lldb/blob/7535162178eada833e72a5525fc26dcc04e7331e/tools/lldb-mi/MICmdCommands.cpp</a>  lists all the commands that have been implemented in LLDB/MI .<br><br></div><div>2. Output format:<br></div><div>Output returned by both the MI's is similar . <br><font size="4"><br></font></div><div><b><font size="2">APPROACH FOR INTEGRATING THE PLUGIN:<br></font></b></div><div><b><font size="2"><br></font></b></div><div>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 <br></div><div><br><u>Code re-usability offered by GDB/MI:</u><br></div><div>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.<br><br></div></div></blockquote><div><br><b><u>Time-line </u>:<br></b><div>During
 the summer I would like to concentrate on making the debugger 
architecture generic.The entire work can be divided into 2 sub 
categories :<br><br></div><div>1.<u>Pre-Process Set-up :-</u> This includes everything that needs to be set-up before Gdb or LLDB starts <br></div><div><u><br></u></div><div><ul><li>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.</li><li>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.</li></ul></div><div><br></div><div>2.<u>Post-Process Set-up :- </u>This includes everything that needs to be set-up after Gdb or LLDB starts<br></div><div><ul><li>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)</li></ul></div><div><br><b>Last Week(15th August to 23rd August) : </b>In this period I will do the documentation(will also be done prior to this period) and clean up the code <br></div><div><br></div><br><br> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><b> </b> <br></div><div><b>AVAILABILITY:<br></b></div><div>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 .<br><b><br></b></div><div><b>What  will I deliver :<br></b></div><div>1.A generic debugger architecture such that it becomes usable by GDB and LLDB<br></div><div>2.Making Gdb a better plugin by solving the bugs <br></div><div><b><br></b></div><div><b>About Me:<br></b>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.<br></div><div><br></div><div><b>What I have done for KDevelop:<br><br></b></div><div>Worked on two bugs:<br><a href="https://git.reviewboard.kde.org/r/125549/" target="_blank">https://git.reviewboard.kde.org/r/125549/</a>  -  this has been submitted<br><a href="https://git.reviewboard.kde.org/r/125664/" target="_blank">https://git.reviewboard.kde.org/r/125664/</a>  - Solves the issue but I plan to work on it again.<br><br></div><div>Work on LLDB plugin<br><a href="https://github.com/rish9511/kdevelop/tree/lldbtest" target="_blank">https://github.com/rish9511/kdevelop/tree/lldbtest</a>  <br><br><br></div><div> <br></div><div><b>WORK ON OTHER KDE PROJECTS:<br><br></b></div><div>1.AMAROK<br></div><div>Helped in porting it to kf5 frameworks by solving 2 bugs:<br><br><a href="https://git.reviewboard.kde.org/r/125872/" target="_blank">https://git.reviewboard.kde.org/r/125872/</a> <br><a href="https://git.reviewboard.kde.org/r/125593/" target="_blank">https://git.reviewboard.kde.org/r/125593/</a><br><br></div><div>2.GCompris:<br></div><div>Made a search feature for  it.<br><a href="https://github.com/rish9511/GCompris-qt/tree/searchfeature" target="_blank">https://github.com/rish9511/GCompris-qt/tree/searchfeature</a> -- The work has been completed but has not been merged.<br></div><div><b><br></b></div><div><b>Why I want to work on the project:<br></b></div><div><br>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  .<br><br></div><div>2. I can't stress this enough:Getting to work with great developers <br></div><div><br></div><div>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 .<br><br></div><div>Cheers,<br></div><div>Rishabh<br></div></div>
</blockquote></div><br></div></div></div>