<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/121527/">https://git.reviewboard.kde.org/r/121527/</a>
     </td>
    </tr>
   </table>
   <br />










<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On December 15th, 2014, 3:43 p.m. UTC, <b>Nicolai Hähnle</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/121527/diff/1/?file=333300#file333300line287" style="color: black; font-weight: bold; text-decoration: underline;">debuggers/gdb/debugsession.cpp</a>
    <span style="font-weight: normal;">

     (Diff revision 1)

    </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">233</font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">        <span class="n">KMessageBox</span><span class="o">::</span><span class="n">information</span><span class="p">(</span></pre></td>
  </tr>

  <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">234</font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">            <span class="n">qApp</span><span class="o">-></span><span class="n">activeWindow</span><span class="p">(),</span></pre></td>
  </tr>

  <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">235</font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">            <span class="n">i18n</span><span class="p">(</span><span class="s">"<b>Failed to load core file</b>"</span></pre></td>
  </tr>

  <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">236</font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">                <span class="s">"<p>Debugger reported the following error:"</span></pre></td>
  </tr>

  <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">237</font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">                <span class="s">"<p><tt>%1"</span><span class="p">,</span> <span class="n">r</span><span class="p">[</span><span class="s">"msg"</span><span class="p">].</span><span class="n">literal</span><span class="p">()),</span></pre></td>
  </tr>

  <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">238</font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">            <span class="n">i18n</span><span class="p">(</span><span class="s">"Debugger error"</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;">There is a new string here.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Since it fixes the issue of not getting proper feedback when something fails that should be okay, but I guess it still needs to be ACK'ed by some people?</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;">I've now contacted k18n-docs and await their feedback on a string freeze exception.</p></pre>
<br />




<p>- Milian</p>


<br />
<p>On December 15th, 2014, 7:06 a.m. UTC, Andreas Roth 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 Andreas Roth.</div>


<p style="color: grey;"><i>Updated Dec. 15, 2014, 7:06 a.m.</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;">I backported all the gdb related changes from master to the 4.7 branch. This also includes fixes to restore the gdb unit tests. Many thanks to Nikolai who did a great job there.
My entire git tree is available at https://github.com/aroth-arsoft/kdevelop/tree/4.7-gdb-fixes-from-master</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">gdb: do not use addCommandToFront in DisassembleWidget</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">gdb: DebugSession: add a testing mode for unit tests</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Attempt to provide a cleaner environment during unit tests, in particular do
not read the user's .gdbinit files (those can mess up breakpoint counts etc.).</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">gdb: match structure more closely to the GDB/MI documentation and use cmd tokens</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">In particular, split Result and Async records into separate categories to mirror
the GDB documentation and account for the reality that async records can come
at any time according to the GDB doc, and need to be processed in any case.
These changes should help make the debugger more robust in the long term.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">fix merge error</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">gdb: always process async notifications from GDB</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">The GDB documentation says that async notifications may arrive at any time,
even when all commands have returned a result.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">gdb: remove magic constants in GDBMI::StreamRecord</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">gdb: remove flaky DebugSession::parseStreamRecord</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">gdb: add braces around multi-line if statement</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">gdb: examineCoreFile: update IDebugSession::state() to match unit tests</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">gdb: update session state more robustly based on async notifications</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">This is a first step towards picking up changes of the running state that are
caused by user commands to GDB.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">gdb: make testIgnoreHitsBreakpoint more robust to timing issues</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Instead of waiting for a debugger state, wait for a combination of debugger
state + breakpoint hit-count. This ensures that the test does the right thing
even when an intermediate PausedState is encountered during program startup.
It also happens to verify that the breakpoint hitCount is updated correctly.
gdb: testManualAttach: fix timing</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">gdb: unit tests: make timing more robust in some tests</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Wait explicitly until the debugger is idle, which should avoid accidentally
accepting an intermittent pause state; it also ensures that data reloading
has completed e.g. for the frame stack model.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">gdb: unittests: remove unused WAIT_FOR_STATE_FAIL</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">gdb: source code formatting changes</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">test_gdb: remove code duplication in check whether ptrace attach is allowed</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">test_gdb: add missing gdb_script_empty</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">gdb: make loading of our Python pretty printers into gdb more robust</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Instead of relying on a cmake-configured gdbinit that might end up being
moved around by the user, we add the Python path at the point where we also
determine the path to gdbinit.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">REVIEW: 121464</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">gdb: do not crash when receiving thread-info responses with running threads</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">gdb can operate in a mode where gdb receives commands while the inferior (or
a subset of the threads of the inferior) is running.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">REVIEW: 121465</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">gdb: quick fix for compile error on OSX</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">gdb: fix two compile errors that were missed in the previous commit</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">test_gdb: make more unit tests more robust to timing variances</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">gdb: ignore "library-loaded" async notifications</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">gdb: warn the user when a debug launch will kill a currently running debug session</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">REVIEW: 121469</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">correct signal/slot connections caused by using different parameter types</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">test_gdb: use Breakpoint::State, anticipating potential future API changes</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;">GDB unit tests runs without any failure</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/DESIGN.txt <span style="color: grey">(ddefb700d8b38f923ee68816de04683e08ef66a3)</span></li>

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

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

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

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

 <li>debuggers/gdb/debugjob.cpp <span style="color: grey">(2807484b798d18778f5f9f203935cd72e6b1440a)</span></li>

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

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

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

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

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

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

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

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

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

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

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

 <li>debuggers/gdb/gdblaunchconfig.cpp <span style="color: grey">(720099894f48cb1676f538cd36482acb4fa9fd6d)</span></li>

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

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

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

 <li>debuggers/gdb/printers/CMakeLists.txt <span style="color: grey">(f772c8ad47bd012733f38669a28b83ffcf286fa2)</span></li>

 <li>debuggers/gdb/printers/gdbinit <span style="color: grey">(c82ac9790b0bc596a9783e093d46f15f2700408d)</span></li>

 <li>debuggers/gdb/unittests/gdb_script_empty <span style="color: grey">(PRE-CREATION)</span></li>

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

 <li>debuggers/gdb/unittests/gdbtest.cpp <span style="color: grey">(ef3cd4285420621cd1cea75f519c9349caca5e53)</span></li>

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

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

</ul>

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






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








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