Skip to content

Commit 912d80d

Browse files
Autorefresh Dev Documentation
1 parent a624f81 commit 912d80d

File tree

5 files changed

+32
-17
lines changed

5 files changed

+32
-17
lines changed

dev/_modules/libdebug/debugger/debugger.html

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -746,9 +746,14 @@ <h1>Source code for libdebug.debugger.debugger</h1><div class="highlight"><pre>
746746

747747
<div class="viewcode-block" id="Debugger.gdb">
748748
<a class="viewcode-back" href="../../../libdebug.debugger.html#libdebug.debugger.debugger.Debugger.gdb">[docs]</a>
749-
<span class="k">def</span> <span class="nf">gdb</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Debugger</span><span class="p">,</span> <span class="n">open_in_new_process</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
750-
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Migrates the current debugging session to GDB.&quot;&quot;&quot;</span>
751-
<span class="bp">self</span><span class="o">.</span><span class="n">_internal_debugger</span><span class="o">.</span><span class="n">gdb</span><span class="p">(</span><span class="n">open_in_new_process</span><span class="p">)</span></div>
749+
<span class="k">def</span> <span class="nf">gdb</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Debugger</span><span class="p">,</span> <span class="n">migrate_breakpoints</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">open_in_new_process</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
750+
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Migrates the current debugging session to GDB.</span>
751+
752+
<span class="sd"> Args:</span>
753+
<span class="sd"> migrate_breakpoints (bool): Whether to migrate over the breakpoints set in libdebug to GDB.</span>
754+
<span class="sd"> open_in_new_process (bool): Whether to attempt to open GDB in a new process instead of the current one.</span>
755+
<span class="sd"> &quot;&quot;&quot;</span>
756+
<span class="bp">self</span><span class="o">.</span><span class="n">_internal_debugger</span><span class="o">.</span><span class="n">gdb</span><span class="p">(</span><span class="n">migrate_breakpoints</span><span class="p">,</span> <span class="n">open_in_new_process</span><span class="p">)</span></div>
752757

753758

754759
<div class="viewcode-block" id="Debugger.r">

dev/_modules/libdebug/debugger/internal_debugger.html

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -720,7 +720,7 @@ <h1>Source code for libdebug.debugger.internal_debugger</h1><div class="highligh
720720
<span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">__polling_thread_command_queue</span><span class="o">.</span><span class="n">empty</span><span class="p">():</span>
721721
<span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="s2">&quot;Polling thread command queue not empty.&quot;</span><span class="p">)</span>
722722

723-
<span class="bp">self</span><span class="o">.</span><span class="n">__polling_thread_command_queue</span><span class="o">.</span><span class="n">put</span><span class="p">((</span><span class="bp">self</span><span class="o">.</span><span class="n">__threaded_run</span><span class="p">,</span> <span class="p">(</span><span class="n">redirect_pipes</span><span class="p">,</span> <span class="p">)))</span>
723+
<span class="bp">self</span><span class="o">.</span><span class="n">__polling_thread_command_queue</span><span class="o">.</span><span class="n">put</span><span class="p">((</span><span class="bp">self</span><span class="o">.</span><span class="n">__threaded_run</span><span class="p">,</span> <span class="p">(</span><span class="n">redirect_pipes</span><span class="p">,)))</span>
724724

725725
<span class="bp">self</span><span class="o">.</span><span class="n">_join_and_check_status</span><span class="p">()</span>
726726

@@ -1261,7 +1261,7 @@ <h1>Source code for libdebug.debugger.internal_debugger</h1><div class="highligh
12611261
<a class="viewcode-back" href="../../../libdebug.debugger.html#libdebug.debugger.internal_debugger.InternalDebugger.gdb">[docs]</a>
12621262
<span class="nd">@background_alias</span><span class="p">(</span><span class="n">_background_invalid_call</span><span class="p">)</span>
12631263
<span class="nd">@change_state_function_process</span>
1264-
<span class="k">def</span> <span class="nf">gdb</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">InternalDebugger</span><span class="p">,</span> <span class="n">open_in_new_process</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
1264+
<span class="k">def</span> <span class="nf">gdb</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">InternalDebugger</span><span class="p">,</span> <span class="n">migrate_breakpoints</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">open_in_new_process</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
12651265
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Migrates the current debugging session to GDB.&quot;&quot;&quot;</span>
12661266
<span class="c1"># TODO: not needed?</span>
12671267
<span class="bp">self</span><span class="o">.</span><span class="n">interrupt</span><span class="p">()</span>
@@ -1270,21 +1270,23 @@ <h1>Source code for libdebug.debugger.internal_debugger</h1><div class="highligh
12701270

12711271
<span class="bp">self</span><span class="o">.</span><span class="n">_join_and_check_status</span><span class="p">()</span>
12721272

1273+
<span class="n">command</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_craft_gdb_migration_command</span><span class="p">(</span><span class="n">migrate_breakpoints</span><span class="p">)</span>
1274+
12731275
<span class="k">if</span> <span class="n">open_in_new_process</span> <span class="ow">and</span> <span class="n">libcontext</span><span class="o">.</span><span class="n">terminal</span><span class="p">:</span>
1274-
<span class="bp">self</span><span class="o">.</span><span class="n">_open_gdb_in_new_process</span><span class="p">()</span>
1276+
<span class="bp">self</span><span class="o">.</span><span class="n">_open_gdb_in_new_process</span><span class="p">(</span><span class="n">command</span><span class="p">)</span>
12751277
<span class="k">else</span><span class="p">:</span>
12761278
<span class="k">if</span> <span class="n">open_in_new_process</span><span class="p">:</span>
12771279
<span class="n">liblog</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span>
12781280
<span class="s2">&quot;Cannot open in a new process. Please configure the terminal in libcontext.terminal.&quot;</span><span class="p">,</span>
12791281
<span class="p">)</span>
1280-
<span class="bp">self</span><span class="o">.</span><span class="n">_open_gdb_in_shell</span><span class="p">()</span>
1282+
<span class="bp">self</span><span class="o">.</span><span class="n">_open_gdb_in_shell</span><span class="p">(</span><span class="n">command</span><span class="p">)</span>
12811283

12821284
<span class="bp">self</span><span class="o">.</span><span class="n">__polling_thread_command_queue</span><span class="o">.</span><span class="n">put</span><span class="p">((</span><span class="bp">self</span><span class="o">.</span><span class="n">__threaded_migrate_from_gdb</span><span class="p">,</span> <span class="p">()))</span>
12831285

12841286
<span class="bp">self</span><span class="o">.</span><span class="n">_join_and_check_status</span><span class="p">()</span></div>
12851287

12861288

1287-
<span class="k">def</span> <span class="nf">_craft_gdb_migration_command</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">InternalDebugger</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">list</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
1289+
<span class="k">def</span> <span class="nf">_craft_gdb_migration_command</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">InternalDebugger</span><span class="p">,</span> <span class="n">migrate_breakpoints</span><span class="p">:</span> <span class="nb">bool</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">list</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
12881290
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Crafts the command to migrate to GDB.&quot;&quot;&quot;</span>
12891291
<span class="n">gdb_command</span> <span class="o">=</span> <span class="p">[</span>
12901292
<span class="s2">&quot;/bin/gdb&quot;</span><span class="p">,</span>
@@ -1299,6 +1301,9 @@ <h1>Source code for libdebug.debugger.internal_debugger</h1><div class="highligh
12991301
<span class="s2">&quot;ni&quot;</span><span class="p">,</span>
13001302
<span class="p">]</span>
13011303

1304+
<span class="k">if</span> <span class="ow">not</span> <span class="n">migrate_breakpoints</span><span class="p">:</span>
1305+
<span class="k">return</span> <span class="n">gdb_command</span>
1306+
13021307
<span class="n">bp_args</span> <span class="o">=</span> <span class="p">[]</span>
13031308
<span class="k">for</span> <span class="n">bp</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">breakpoints</span><span class="o">.</span><span class="n">values</span><span class="p">():</span>
13041309
<span class="k">if</span> <span class="n">bp</span><span class="o">.</span><span class="n">enabled</span><span class="p">:</span>
@@ -1320,10 +1325,8 @@ <h1>Source code for libdebug.debugger.internal_debugger</h1><div class="highligh
13201325

13211326
<span class="k">return</span> <span class="n">gdb_command</span> <span class="o">+</span> <span class="n">bp_args</span>
13221327

1323-
<span class="k">def</span> <span class="nf">_open_gdb_in_new_process</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">InternalDebugger</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
1328+
<span class="k">def</span> <span class="nf">_open_gdb_in_new_process</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">InternalDebugger</span><span class="p">,</span> <span class="n">args</span><span class="p">:</span> <span class="nb">list</span><span class="p">[</span><span class="nb">str</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
13241329
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Opens GDB in a new process following the configuration in libcontext.terminal.&quot;&quot;&quot;</span>
1325-
<span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_craft_gdb_migration_command</span><span class="p">()</span>
1326-
13271330
<span class="n">initial_pid</span> <span class="o">=</span> <span class="n">Popen</span><span class="p">(</span><span class="n">libcontext</span><span class="o">.</span><span class="n">terminal</span> <span class="o">+</span> <span class="n">args</span><span class="p">)</span><span class="o">.</span><span class="n">pid</span>
13281331

13291332
<span class="n">os</span><span class="o">.</span><span class="n">waitpid</span><span class="p">(</span><span class="n">initial_pid</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
@@ -1348,11 +1351,10 @@ <h1>Source code for libdebug.debugger.internal_debugger</h1><div class="highligh
13481351
<span class="c1"># So we must keep polling it until it is no longer running</span>
13491352
<span class="k">pass</span>
13501353

1351-
<span class="k">def</span> <span class="nf">_open_gdb_in_shell</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">InternalDebugger</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
1354+
<span class="k">def</span> <span class="nf">_open_gdb_in_shell</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">InternalDebugger</span><span class="p">,</span> <span class="n">args</span><span class="p">:</span> <span class="nb">list</span><span class="p">[</span><span class="nb">str</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
13521355
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Open GDB in the current shell.&quot;&quot;&quot;</span>
13531356
<span class="n">gdb_pid</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">fork</span><span class="p">()</span>
13541357
<span class="k">if</span> <span class="n">gdb_pid</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> <span class="c1"># This is the child process.</span>
1355-
<span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_craft_gdb_migration_command</span><span class="p">()</span>
13561358
<span class="n">os</span><span class="o">.</span><span class="n">execv</span><span class="p">(</span><span class="s2">&quot;/bin/gdb&quot;</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span>
13571359
<span class="k">else</span><span class="p">:</span> <span class="c1"># This is the parent process.</span>
13581360
<span class="c1"># Parent ignores SIGINT, so only GDB (child) receives it</span>

dev/_modules/libdebug/utils/debugger_wrappers.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -486,7 +486,7 @@ <h1>Source code for libdebug.utils.debugger_wrappers</h1><div class="highlight">
486486

487487
<span class="c1"># We have to ensure that at least one thread is alive before executing the method</span>
488488
<span class="k">if</span> <span class="n">thread</span><span class="o">.</span><span class="n">dead</span><span class="p">:</span>
489-
<span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="s2">&quot;The threads is dead.&quot;</span><span class="p">)</span>
489+
<span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="s2">&quot;The thread is dead.&quot;</span><span class="p">)</span>
490490
<span class="k">return</span> <span class="n">method</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">thread</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
491491

492492
<span class="k">return</span> <span class="n">wrapper</span></div>

0 commit comments

Comments
 (0)