<html>
 <body>
  <div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
   <table bgcolor="#f9f3c9" width="100%" cellpadding="12" style="border: 1px #c9c399 solid; border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
    <tr>
     <td>
      This is an automatically generated e-mail. To reply, visit:
      <a href="https://git.reviewboard.kde.org/r/121442/">https://git.reviewboard.kde.org/r/121442/</a>
     </td>
    </tr>
   </table>
   <br />










<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On Dezember 12th, 2014, 12:19 nachm. UTC, <b>Milian Wolff</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  


<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">
 <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">
    <a href="https://git.reviewboard.kde.org/r/121442/diff/2/?file=332672#file332672line48" style="color: black; font-weight: bold; text-decoration: underline;">debuggers/gdb/gdb.h</a>
    <span style="font-weight: normal;">

     (Diff revision 2)

    </span>
   </th>
  </tr>
 </thead>

 <tbody style="background-color: #e4d9cb; padding: 4px 8px; text-align: center;">
  <tr>

   <td colspan="4"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">class GDB : public QObject</pre></td>

  </tr>
 </tbody>



 
 

 <tbody>

  <tr>
    <th bgcolor="#e9eaa8" style="border-right: 1px solid #C0C0C0;" align="right"><font size="2">48</font></th>
    <td bgcolor="#fdfebc" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span class="kt">void</span> <span class="nf">start</span><span class="p">(</span><span class="n">KConfigGroup</span><span class="o">&</span> <span class="n">config</span><span class="p">);</span></pre></td>
    <th bgcolor="#e9eaa8" style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font size="2">48</font></th>
    <td bgcolor="#fdfebc" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span class="kt">void</span> <span class="nf">start</span><span class="p">(</span><span class="n">KConfigGroup</span><span class="o">&</span> <span class="n">config</span><span class="p"><span class="hl">,</span></span><span class="hl"> </span><span class="k"><span class="hl">const</span></span><span class="hl"> </span><span class="n"><span class="hl">QStringList</span></span><span class="hl"> </span><span class="o"><span class="hl">&</span></span><span class="hl"> </span><span class="n"><span class="hl">extraArguments</span></span><span class="hl"> </span><span class="o"><span class="hl">=</span></span><span class="hl"> </span><span class="p"><span class="hl">{}</span>);</span></pre></td>
  </tr>

 </tbody>

</table>

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">style: put & next to typename</p></pre>
 </blockquote>





</blockquote>
<pre style="margin-left: 1em; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Will do. I ask for forgiveness for future instances where this may happen, this kind of habit is hard to change ;)</p></pre>
<br />

<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On Dezember 12th, 2014, 12:19 nachm. UTC, <b>Milian Wolff</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  


<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">
 <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">
    <a href="https://git.reviewboard.kde.org/r/121442/diff/2/?file=332681#file332681line142" style="color: black; font-weight: bold; text-decoration: underline;">debuggers/gdb/mi/miparser.cpp</a>
    <span style="font-weight: normal;">

     (Diff revision 2)

    </span>
   </th>
  </tr>
 </thead>

 <tbody style="background-color: #e4d9cb; padding: 4px 8px; text-align: center;">
  <tr>

   <td colspan="4"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">MIParser::MIParser()</pre></td>

  </tr>
 </tbody>



 
 

 <tbody>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" align="right"><font size="2"></font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>
    <th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font size="2">125</font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span class="k">return</span> <span class="n">std</span><span class="o">::</span><span class="n">move</span><span class="p">(</span><span class="n">stream</span><span class="p">);</span></pre></td>
  </tr>

 </tbody>

</table>

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">is the explicit move really required?</p></pre>
 </blockquote>





</blockquote>
<pre style="margin-left: 1em; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Yes. Returning the stream object implies making a copy, but std::unique_ptr cannot be copied. I just verified this just to make sure: indeed, gcc produces an error message if I replace this by "return stream;".</p></pre>
<br />

<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On Dezember 12th, 2014, 12:19 nachm. UTC, <b>Milian Wolff</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  


<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">
 <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">
    <a href="https://git.reviewboard.kde.org/r/121442/diff/2/?file=332683#file332683line920" style="color: black; font-weight: bold; text-decoration: underline;">debuggers/gdb/unittests/test_gdb.cpp</a>
    <span style="font-weight: normal;">

     (Diff revision 2)

    </span>
   </th>
  </tr>
 </thead>



 
 

 <tbody>

  <tr>
    <th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" align="right"><font size="2"></font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>
    <th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font size="2">918</font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span class="n">QFile</span> <span class="n">canRun</span><span class="p">(</span><span class="s">"/proc/sys/kernel/yama/ptrace_scope"</span><span class="p">);</span></pre></td>
  </tr>

 </tbody>

</table>

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">this is also done elsewhere, right? can you factor it out into a function?</p></pre>
 </blockquote>





</blockquote>
<pre style="margin-left: 1em; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Done. Ultimately this check should probably be moved into the plugin itself at some point, when the "Attach to process" dialog is revived, though I'm unsure where this type of naturally global function should best be placed.</p></pre>
<br />




<p>- Nicolai</p>


<br />
<p>On Dezember 11th, 2014, 2:54 nachm. UTC, Nicolai Hähnle wrote:</p>









<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="12" style="border: 1px #888a85 solid; border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
 <tr>
  <td>

<div>Review request for KDevelop.</div>
<div>By Nicolai Hähnle.</div>


<p style="color: grey;"><i>Updated Dez. 11, 2014, 2:54 nachm.</i></p>









<div style="margin-top: 1.5em;">
 <b style="color: #575012; font-size: 10pt;">Repository: </b>
kdevelop
</div>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
 <table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Please excuse what is probably a bit of an abuse of the system. I wanted to use KDevelop in remote debugging and ran into trouble because it gets horribly confused when user commands (including from a GDB setup script as specified in the Launch Configuration) modify certain kinds of state. I started working on this and things kind of escalated, so I wanted to put something out there ASAP to let you know that I'm working on this and to get feedback on the direction this is going.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">The overall direction of those changes is to modify the gdb plugin such that it picks up state changes (running state, breakpoints, etc.) based on the async notifications rather than based on the command it sends itself. This is crucial for handling correctly the case where the user enters a command such as "continue" directly in the GDB view, or (more importantly for my use case) to handle at all the case where I set up a GDB script to attach to a remote target.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">The first milestone I set for myself is being able to do <em style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">any</em> remote debugging in my particular use case at all, while keeping the unit tests working correctly. Longer term, I hope to be able to fix the breakpoint handling so that it picks up breakpoints set outside the control of KDevelop, and other similar issues as they come up.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">This is a series of patches, the headlines of which are currently:</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">gdb: remove unused QueueWhileInterrupted mode from the command queue
gdb: do not use addCommandToFront in DisassembleWidget
gdb: DebugSession: add a testing mode for unit tests
gdb: match structure more closely to the GDB/MI documentation and use cmd tokens
gdb: always process async notifications from GDB
gdb: remove magic constants in GDBMI::StreamRecord
gdb: remove flaky DebugSession::parseStreamRecord
gdb: add braces around multi-line if statement
gdb: examineCoreFile: update IDebugSession::state() to match unit tests
gdb: update session state more robustly based on async notifications</p></pre>
  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">unit tests; debugging KDevelop with itself and some remote debugging</p></pre>
  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">

 <li>debuggers/gdb/debugsession.h <span style="color: grey">(dbe06c5)</span></li>

 <li>debuggers/gdb/debugsession.cpp <span style="color: grey">(63f9a58)</span></li>

 <li>debuggers/gdb/disassemblewidget.cpp <span style="color: grey">(67024cf)</span></li>

 <li>debuggers/gdb/gdb.h <span style="color: grey">(31688cd)</span></li>

 <li>debuggers/gdb/gdb.cpp <span style="color: grey">(4dc7b5d)</span></li>

 <li>debuggers/gdb/gdbcommand.h <span style="color: grey">(fb23c47)</span></li>

 <li>debuggers/gdb/gdbcommand.cpp <span style="color: grey">(67abbd8)</span></li>

 <li>debuggers/gdb/breakpointcontroller.h <span style="color: grey">(1b8ae0e)</span></li>

 <li>debuggers/gdb/breakpointcontroller.cpp <span style="color: grey">(d5ba5dd)</span></li>

 <li>debuggers/gdb/debuggerplugin.h <span style="color: grey">(4c6bb07)</span></li>

 <li>debuggers/gdb/DESIGN.txt <span style="color: grey">(ddefb70)</span></li>

 <li>debuggers/gdb/gdbcommandqueue.h <span style="color: grey">(7d82f45)</span></li>

 <li>debuggers/gdb/gdbcommandqueue.cpp <span style="color: grey">(801bc41)</span></li>

 <li>debuggers/gdb/gdbglobal.h <span style="color: grey">(ef31c02)</span></li>

 <li>debuggers/gdb/mi/gdbmi.h <span style="color: grey">(d5e92b8)</span></li>

 <li>debuggers/gdb/mi/miparser.h <span style="color: grey">(7096af0)</span></li>

 <li>debuggers/gdb/mi/miparser.cpp <span style="color: grey">(123c97e)</span></li>

 <li>debuggers/gdb/unittests/test_gdb.h <span style="color: grey">(b9a961d)</span></li>

 <li>debuggers/gdb/unittests/test_gdb.cpp <span style="color: grey">(03a1203)</span></li>

 <li>debuggers/gdb/variablecontroller.h <span style="color: grey">(f5ac8c1)</span></li>

 <li>debuggers/gdb/variablecontroller.cpp <span style="color: grey">(5eb9908)</span></li>

</ul>

<p><a href="https://git.reviewboard.kde.org/r/121442/diff/" style="margin-left: 3em;">View Diff</a></p>






  </td>
 </tr>
</table>








  </div>
 </body>
</html>