<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">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><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/">https://git.reviewboard.kde.org/r/125549/</a>  -  this has been submitted<br><a href="https://git.reviewboard.kde.org/r/125664/">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">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/">https://git.reviewboard.kde.org/r/125872/</a> <br><a href="https://git.reviewboard.kde.org/r/125593/">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">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>