Skip to content

Commit 02dd661

Browse files
Autorefresh Dev Documentation
1 parent ecf2e45 commit 02dd661

File tree

9 files changed

+954
-96
lines changed

9 files changed

+954
-96
lines changed

dev/_modules/libdebug/data/signal_catcher.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -485,7 +485,7 @@ <h1>Source code for libdebug.data.signal_catcher</h1><div class="highlight"><pre
485485
<a class="viewcode-back" href="../../../libdebug.data.html#libdebug.data.signal_catcher.SignalCatcher.hit_on">[docs]</a>
486486
<span class="k">def</span> <span class="nf">hit_on</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">SignalCatcher</span><span class="p">,</span> <span class="n">thread_context</span><span class="p">:</span> <span class="n">ThreadContext</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
487487
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Returns whether the signal catcher has been hit on the given thread context.&quot;&quot;&quot;</span>
488-
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">enabled</span> <span class="ow">and</span> <span class="n">thread_context</span><span class="o">.</span><span class="n">_signal_number</span> <span class="o">==</span> <span class="bp">self</span><span class="o">.</span><span class="n">signal_number</span></div>
488+
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">enabled</span> <span class="ow">and</span> <span class="n">thread_context</span><span class="o">.</span><span class="n">signal_number</span> <span class="o">==</span> <span class="bp">self</span><span class="o">.</span><span class="n">signal_number</span></div>
489489

490490

491491
<span class="k">def</span> <span class="fm">__hash__</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">SignalCatcher</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">int</span><span class="p">:</span>

dev/_modules/libdebug/debugger/debugger.html

Lines changed: 380 additions & 19 deletions
Large diffs are not rendered by default.

dev/_modules/libdebug/state/thread_context.html

Lines changed: 32 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -568,6 +568,21 @@ <h1>Source code for libdebug.state.thread_context</h1><div class="highlight"><pr
568568
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Whether the process is running.&quot;&quot;&quot;</span>
569569
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_internal_debugger</span><span class="o">.</span><span class="n">running</span>
570570

571+
<span class="nd">@property</span>
572+
<span class="k">def</span> <span class="nf">saved_ip</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">ThreadContext</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">int</span><span class="p">:</span>
573+
<span class="w"> </span><span class="sd">&quot;&quot;&quot;The return address of the current function.&quot;&quot;&quot;</span>
574+
<span class="bp">self</span><span class="o">.</span><span class="n">_internal_debugger</span><span class="o">.</span><span class="n">_ensure_process_stopped</span><span class="p">()</span>
575+
<span class="n">stack_unwinder</span> <span class="o">=</span> <span class="n">stack_unwinding_provider</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_internal_debugger</span><span class="o">.</span><span class="n">arch</span><span class="p">)</span>
576+
577+
<span class="k">try</span><span class="p">:</span>
578+
<span class="n">return_address</span> <span class="o">=</span> <span class="n">stack_unwinder</span><span class="o">.</span><span class="n">get_return_address</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_internal_debugger</span><span class="o">.</span><span class="n">maps</span><span class="p">)</span>
579+
<span class="k">except</span> <span class="p">(</span><span class="ne">OSError</span><span class="p">,</span> <span class="ne">ValueError</span><span class="p">)</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
580+
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span>
581+
<span class="s2">&quot;Failed to get the return address. Check stack frame registers (e.g., base pointer).&quot;</span><span class="p">,</span>
582+
<span class="p">)</span> <span class="kn">from</span> <span class="nn">e</span>
583+
584+
<span class="k">return</span> <span class="n">return_address</span>
585+
571586
<span class="nd">@property</span>
572587
<span class="k">def</span> <span class="nf">exit_code</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">ThreadContext</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">int</span> <span class="o">|</span> <span class="kc">None</span><span class="p">:</span>
573588
<span class="w"> </span><span class="sd">&quot;&quot;&quot;The thread&#39;s exit code.&quot;&quot;&quot;</span>
@@ -612,6 +627,11 @@ <h1>Source code for libdebug.state.thread_context</h1><div class="highlight"><pr
612627
<span class="bp">self</span><span class="o">.</span><span class="n">_signal_number</span> <span class="o">=</span> <span class="n">signal</span>
613628
<span class="bp">self</span><span class="o">.</span><span class="n">_internal_debugger</span><span class="o">.</span><span class="n">resume_context</span><span class="o">.</span><span class="n">threads_with_signals_to_forward</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">thread_id</span><span class="p">)</span>
614629

630+
<span class="nd">@property</span>
631+
<span class="k">def</span> <span class="nf">signal_number</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">ThreadContext</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">int</span><span class="p">:</span>
632+
<span class="w"> </span><span class="sd">&quot;&quot;&quot;The signal number to forward to the thread.&quot;&quot;&quot;</span>
633+
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_signal_number</span>
634+
615635
<div class="viewcode-block" id="ThreadContext.backtrace">
616636
<a class="viewcode-back" href="../../../libdebug.state.html#libdebug.state.thread_context.ThreadContext.backtrace">[docs]</a>
617637
<span class="k">def</span> <span class="nf">backtrace</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">ThreadContext</span><span class="p">,</span> <span class="n">as_symbols</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">list</span><span class="p">:</span>
@@ -629,10 +649,10 @@ <h1>Source code for libdebug.state.thread_context</h1><div class="highlight"><pr
629649
<span class="k">return</span> <span class="n">backtrace</span></div>
630650

631651

632-
<div class="viewcode-block" id="ThreadContext.print_backtrace">
633-
<a class="viewcode-back" href="../../../libdebug.state.html#libdebug.state.thread_context.ThreadContext.print_backtrace">[docs]</a>
634-
<span class="k">def</span> <span class="nf">print_backtrace</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">ThreadContext</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
635-
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Prints the current backtrace of the thread.&quot;&quot;&quot;</span>
652+
<div class="viewcode-block" id="ThreadContext.pprint_backtrace">
653+
<a class="viewcode-back" href="../../../libdebug.state.html#libdebug.state.thread_context.ThreadContext.pprint_backtrace">[docs]</a>
654+
<span class="k">def</span> <span class="nf">pprint_backtrace</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">ThreadContext</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
655+
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Pretty prints the current backtrace of the thread.&quot;&quot;&quot;</span>
636656
<span class="bp">self</span><span class="o">.</span><span class="n">_internal_debugger</span><span class="o">.</span><span class="n">_ensure_process_stopped</span><span class="p">()</span>
637657
<span class="n">stack_unwinder</span> <span class="o">=</span> <span class="n">stack_unwinding_provider</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_internal_debugger</span><span class="o">.</span><span class="n">arch</span><span class="p">)</span>
638658
<span class="n">backtrace</span> <span class="o">=</span> <span class="n">stack_unwinder</span><span class="o">.</span><span class="n">unwind</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
@@ -675,7 +695,10 @@ <h1>Source code for libdebug.state.thread_context</h1><div class="highlight"><pr
675695
<div class="viewcode-block" id="ThreadContext.pprint_regs">
676696
<a class="viewcode-back" href="../../../libdebug.state.html#libdebug.state.thread_context.ThreadContext.pprint_regs">[docs]</a>
677697
<span class="k">def</span> <span class="nf">pprint_regs</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">ThreadContext</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
678-
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Alias for the `pprint_registers` method.&quot;&quot;&quot;</span>
698+
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Alias for the `pprint_registers` method.</span>
699+
700+
<span class="sd"> Pretty prints the thread&#39;s registers.</span>
701+
<span class="sd"> &quot;&quot;&quot;</span>
679702
<span class="bp">self</span><span class="o">.</span><span class="n">pprint_registers</span><span class="p">()</span></div>
680703

681704

@@ -698,24 +721,12 @@ <h1>Source code for libdebug.state.thread_context</h1><div class="highlight"><pr
698721
<div class="viewcode-block" id="ThreadContext.pprint_regs_all">
699722
<a class="viewcode-back" href="../../../libdebug.state.html#libdebug.state.thread_context.ThreadContext.pprint_regs_all">[docs]</a>
700723
<span class="k">def</span> <span class="nf">pprint_regs_all</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">ThreadContext</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
701-
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Alias for the `pprint_registers_all` method.&quot;&quot;&quot;</span>
702-
<span class="bp">self</span><span class="o">.</span><span class="n">pprint_registers_all</span><span class="p">()</span></div>
703-
704-
705-
<span class="nd">@property</span>
706-
<span class="k">def</span> <span class="nf">saved_ip</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">ThreadContext</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">int</span><span class="p">:</span>
707-
<span class="w"> </span><span class="sd">&quot;&quot;&quot;The return address of the current function.&quot;&quot;&quot;</span>
708-
<span class="bp">self</span><span class="o">.</span><span class="n">_internal_debugger</span><span class="o">.</span><span class="n">_ensure_process_stopped</span><span class="p">()</span>
709-
<span class="n">stack_unwinder</span> <span class="o">=</span> <span class="n">stack_unwinding_provider</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_internal_debugger</span><span class="o">.</span><span class="n">arch</span><span class="p">)</span>
724+
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Alias for the `pprint_registers_all` method.</span>
710725

711-
<span class="k">try</span><span class="p">:</span>
712-
<span class="n">return_address</span> <span class="o">=</span> <span class="n">stack_unwinder</span><span class="o">.</span><span class="n">get_return_address</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_internal_debugger</span><span class="o">.</span><span class="n">maps</span><span class="p">)</span>
713-
<span class="k">except</span> <span class="p">(</span><span class="ne">OSError</span><span class="p">,</span> <span class="ne">ValueError</span><span class="p">)</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
714-
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span>
715-
<span class="s2">&quot;Failed to get the return address. Check stack frame registers (e.g., base pointer).&quot;</span><span class="p">,</span>
716-
<span class="p">)</span> <span class="kn">from</span> <span class="nn">e</span>
726+
<span class="sd"> Pretty prints all the thread&#39;s registers.</span>
727+
<span class="sd"> &quot;&quot;&quot;</span>
728+
<span class="bp">self</span><span class="o">.</span><span class="n">pprint_registers_all</span><span class="p">()</span></div>
717729

718-
<span class="k">return</span> <span class="n">return_address</span>
719730

720731
<div class="viewcode-block" id="ThreadContext.step">
721732
<a class="viewcode-back" href="../../../libdebug.state.html#libdebug.state.thread_context.ThreadContext.step">[docs]</a>

0 commit comments

Comments
 (0)