<div>RTEMS GDB Updates</div><div><br></div><div>A) The framework has undergone major re factoring. The code has been separated into following modules and this design will be followed in future,</div><div><br></div><div>This is done mainly to reduce the clutter and to increase the re-usability of the code. </div>
<div><br></div><div> 1) Object abstractions will go into a module of their own name or into a module corresponding to the parent API. (e.g CORE_ data structures are in the supercore module)</div><div> 2) Pretty printers will go into $api_name_printers</div>
<div> (e.g id_printer is in supercore_printer)</div><div> 3) Helper routines will be grouped into their own modules (ToDo as of current master)</div><div><br></div><div>B) rtems object command now prints message_queue objects and I want to get an opinion on its implementation.</div>
<div><br></div><div>If you look at the code, </div><div>classic.message_queue creates a supercore.CORE_message_queue object, and each have a method to print the contents.</div><div><br></div><div>What I am intending to do is to add all the classic api objects into this, and then refactor again </div>
<div> - Move all the helper routine methods out of the main abstraction</div><div> - to have a robust inheritance in the code.</div><div><br></div><div>C) Testing the code.</div><div>A testing framework can ensure that the code in this repository stays current as rtems moves forward. The idea is to write tests against a pre-defined sample code.</div>
<div><br></div><div>Please go through the code at github and shoot any commends criticisms you have. </div><div><br></div><div>Note: the repo is here <a href="https://github.com/dbalan/rtems-gdb">https://github.com/dbalan/rtems-gdb</a></div>
<div><br></div><div><br></div><div class="gmail_quote">On 23 June 2013 21:28, Dhananjay Balan <span dir="ltr"><<a href="mailto:mb.dhananjay@gmail.com" target="_blank">mb.dhananjay@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<b style="font-weight:normal"><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Inconsolata;vertical-align:baseline;white-space:pre-wrap">Hi,</span></p>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Inconsolata;vertical-align:baseline;white-space:pre-wrap">I was little bit delayed by my academic responsibilities, but I have moved out and everything is in order so that concentrate </span></p>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Inconsolata;vertical-align:baseline;white-space:pre-wrap">exclusively on the SoC. I have created a github repository[1] to push my work. I am starting from what chris wrote and refactoring on the go.</span></p>
<br><span style="font-size:15px;font-family:Inconsolata;vertical-align:baseline;white-space:pre-wrap"></span><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Inconsolata;vertical-align:baseline;white-space:pre-wrap">What I am done so far:</span></p>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Inconsolata;vertical-align:baseline;white-space:pre-wrap">* Read and understood the GDB python API</span></p>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt">
<span style="font-size:15px;font-family:Inconsolata;vertical-align:baseline;white-space:pre-wrap">* Initial scan through the RTEMS docs.</span></p><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Inconsolata;vertical-align:baseline;white-space:pre-wrap">* GDB developer agreement completed</span></p>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Inconsolata;vertical-align:baseline;white-space:pre-wrap">* A blog post on how to use the debug extenstions (Nothing new, but I plan to blog along with my work progresses, and this will be the first in it)[2]</span></p>
<br><span style="font-size:15px;font-family:Inconsolata;vertical-align:baseline;white-space:pre-wrap"></span><br><span style="font-size:15px;font-family:Inconsolata;vertical-align:baseline;white-space:pre-wrap"></span><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt">
<span style="font-size:15px;font-family:Inconsolata;vertical-align:baseline;white-space:pre-wrap">What I will be doing next week:</span></p><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Inconsolata;vertical-align:baseline;white-space:pre-wrap">* Pretty printers - Lots of pretty printers </span></p>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Inconsolata;vertical-align:baseline;white-space:pre-wrap"> I intend to start with the classic api, some parent objects in the hierarchy is already implemented by Chris, My approach is to start from top and implement them on the go.</span></p>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Inconsolata;vertical-align:baseline;white-space:pre-wrap">* Port simple commands from rtems-gdb script, that utilizes the pretty printers - it will also help for others to test my code. </span></p>
<br><span style="font-size:15px;font-family:Inconsolata;vertical-align:baseline;white-space:pre-wrap"></span><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Inconsolata;vertical-align:baseline;white-space:pre-wrap">I will update the work progress here by mail, and also in my blog. </span></p>
<br><span style="font-size:15px;font-family:Inconsolata;vertical-align:baseline;white-space:pre-wrap"></span><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Inconsolata;vertical-align:baseline;white-space:pre-wrap"> </span></p>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Inconsolata;vertical-align:baseline;white-space:pre-wrap">[1] </span><a href="https://github.com/dbalan/rtems-gdb" style="text-decoration:none" target="_blank"><span style="font-size:15px;font-family:Inconsolata;color:rgb(17,85,204);text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">https://github.com/dbalan/rtems-gdb</span></a></p>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-size:15px;font-family:Inconsolata;vertical-align:baseline;white-space:pre-wrap">[2] </span><a href="http://dbalan.github.io/blog/2013/06/23/debugging-rtems-with-gdb/" style="text-decoration:none" target="_blank"><span style="font-size:15px;font-family:Inconsolata;color:rgb(17,85,204);text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">http://dbalan.github.io/blog/2013/06/23/debugging-rtems-with-gdb/</span></a><span style="font-size:15px;font-family:Inconsolata;vertical-align:baseline;white-space:pre-wrap"></span></p>
<br><span style="font-size:15px;font-family:Inconsolata;vertical-align:baseline;white-space:pre-wrap"></span><br><span style="font-size:15px;font-family:Inconsolata;vertical-align:baseline;white-space:pre-wrap"></span></b><div>
<br></div>--<br>Dhananjay
</blockquote></div><br><br clear="all"><div><br></div>-- <br>Regards,<br>Dhananjay M Balan,<br><div>Department Of Computer Science, </div><div>College Of Engineering, Trivandrum.</div><div><a href="http://cet.ac.in" target="_blank">http://cet.ac.in</a></div>