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