Skip to content

Commit a68d8ff

Browse files
Autorefresh Dev Documentation
1 parent c9a5abb commit a68d8ff

File tree

9 files changed

+157
-8
lines changed

9 files changed

+157
-8
lines changed

dev/_modules/libdebug/data/breakpoint.html

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -497,12 +497,21 @@ <h1>Source code for libdebug.data.breakpoint</h1><div class="highlight"><pre>
497497
<a class="viewcode-back" href="../../../libdebug.data.html#libdebug.data.breakpoint.Breakpoint.hit_on">[docs]</a>
498498
<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">Breakpoint</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>
499499
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Returns whether the breakpoint has been hit on the given thread context.&quot;&quot;&quot;</span>
500-
<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">instruction_pointer</span> <span class="o">==</span> <span class="bp">self</span><span class="o">.</span><span class="n">address</span></div>
500+
<span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">enabled</span><span class="p">:</span>
501+
<span class="k">return</span> <span class="kc">False</span>
502+
503+
<span class="n">internal_debugger</span> <span class="o">=</span> <span class="n">provide_internal_debugger</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
504+
<span class="n">internal_debugger</span><span class="o">.</span><span class="n">_ensure_process_stopped</span><span class="p">()</span>
505+
<span class="k">return</span> <span class="n">internal_debugger</span><span class="o">.</span><span class="n">resume_context</span><span class="o">.</span><span class="n">breakpoint_hit</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">thread_context</span><span class="o">.</span><span class="n">thread_id</span><span class="p">)</span> <span class="o">==</span> <span class="bp">self</span></div>
501506

502507

503508
<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">Breakpoint</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">int</span><span class="p">:</span>
504509
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Hash the breakpoint by its address, so that it can be used in sets and maps correctly.&quot;&quot;&quot;</span>
505-
<span class="k">return</span> <span class="nb">hash</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">address</span><span class="p">)</span></div>
510+
<span class="k">return</span> <span class="nb">hash</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">address</span><span class="p">)</span>
511+
512+
<span class="k">def</span> <span class="fm">__eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Breakpoint</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="nb">object</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">bool</span><span class="p">:</span>
513+
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Check if two breakpoints are equal.&quot;&quot;&quot;</span>
514+
<span class="k">return</span> <span class="nb">id</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">==</span> <span class="nb">id</span><span class="p">(</span><span class="n">other</span><span class="p">)</span></div>
506515

507516
</pre></div>
508517

dev/_modules/libdebug/ptrace/ptrace_interface.html

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -683,6 +683,12 @@ <h1>Source code for libdebug.ptrace.ptrace_interface</h1><div class="highlight">
683683
<span class="k">else</span><span class="p">:</span>
684684
<span class="bp">self</span><span class="o">.</span><span class="n">_global_state</span><span class="o">.</span><span class="n">handle_syscall_enabled</span> <span class="o">=</span> <span class="kc">False</span>
685685

686+
<span class="c1"># Reset the event type</span>
687+
<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">event_type</span> <span class="o">=</span> <span class="kc">None</span>
688+
689+
<span class="c1"># Reset the breakpoint hit</span>
690+
<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">breakpoint_hit</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span>
691+
686692
<span class="n">result</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">lib_trace</span><span class="o">.</span><span class="n">cont_all_and_set_bps</span><span class="p">(</span>
687693
<span class="bp">self</span><span class="o">.</span><span class="n">_global_state</span><span class="p">,</span>
688694
<span class="bp">self</span><span class="o">.</span><span class="n">process_id</span><span class="p">,</span>
@@ -705,6 +711,12 @@ <h1>Source code for libdebug.ptrace.ptrace_interface</h1><div class="highlight">
705711
<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">_internal_debugger</span><span class="o">.</span><span class="n">breakpoints</span><span class="o">.</span><span class="n">values</span><span class="p">():</span>
706712
<span class="n">bp</span><span class="o">.</span><span class="n">_disabled_for_step</span> <span class="o">=</span> <span class="kc">True</span>
707713

714+
<span class="c1"># Reset the event type</span>
715+
<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">event_type</span> <span class="o">=</span> <span class="kc">None</span>
716+
717+
<span class="c1"># Reset the breakpoint hit</span>
718+
<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">breakpoint_hit</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span>
719+
708720
<span class="n">result</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">lib_trace</span><span class="o">.</span><span class="n">singlestep</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_global_state</span><span class="p">,</span> <span class="n">thread</span><span class="o">.</span><span class="n">thread_id</span><span class="p">)</span>
709721
<span class="k">if</span> <span class="n">result</span> <span class="o">==</span> <span class="o">-</span><span class="mi">1</span><span class="p">:</span>
710722
<span class="n">errno_val</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">ffi</span><span class="o">.</span><span class="n">errno</span>
@@ -727,6 +739,12 @@ <h1>Source code for libdebug.ptrace.ptrace_interface</h1><div class="highlight">
727739
<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">_internal_debugger</span><span class="o">.</span><span class="n">breakpoints</span><span class="o">.</span><span class="n">values</span><span class="p">():</span>
728740
<span class="n">bp</span><span class="o">.</span><span class="n">_disabled_for_step</span> <span class="o">=</span> <span class="kc">True</span>
729741

742+
<span class="c1"># Reset the event type</span>
743+
<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">event_type</span> <span class="o">=</span> <span class="kc">None</span>
744+
745+
<span class="c1"># Reset the breakpoint hit</span>
746+
<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">breakpoint_hit</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span>
747+
730748
<span class="n">result</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">lib_trace</span><span class="o">.</span><span class="n">step_until</span><span class="p">(</span>
731749
<span class="bp">self</span><span class="o">.</span><span class="n">_global_state</span><span class="p">,</span>
732750
<span class="n">thread</span><span class="o">.</span><span class="n">thread_id</span><span class="p">,</span>
@@ -750,6 +768,12 @@ <h1>Source code for libdebug.ptrace.ptrace_interface</h1><div class="highlight">
750768
<span class="sd"> thread (ThreadContext): The thread to step.</span>
751769
<span class="sd"> heuristic (str): The heuristic to use.</span>
752770
<span class="sd"> &quot;&quot;&quot;</span>
771+
<span class="c1"># Reset the event type</span>
772+
<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">event_type</span> <span class="o">=</span> <span class="kc">None</span>
773+
774+
<span class="c1"># Reset the breakpoint hit</span>
775+
<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">breakpoint_hit</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span>
776+
753777
<span class="k">if</span> <span class="n">heuristic</span> <span class="o">==</span> <span class="s2">&quot;step-mode&quot;</span><span class="p">:</span>
754778
<span class="n">result</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">lib_trace</span><span class="o">.</span><span class="n">stepping_finish</span><span class="p">(</span>
755779
<span class="bp">self</span><span class="o">.</span><span class="n">_global_state</span><span class="p">,</span>
@@ -810,6 +834,11 @@ <h1>Source code for libdebug.ptrace.ptrace_interface</h1><div class="highlight">
810834
<a class="viewcode-back" href="../../../libdebug.ptrace.html#libdebug.ptrace.ptrace_interface.PtraceInterface.next">[docs]</a>
811835
<span class="k">def</span> <span class="nf">next</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">PtraceInterface</span><span class="p">,</span> <span class="n">thread</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>
812836
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Executes the next instruction of the process. If the instruction is a call, the debugger will continue until the called function returns.&quot;&quot;&quot;</span>
837+
<span class="c1"># Reset the event type</span>
838+
<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">event_type</span> <span class="o">=</span> <span class="kc">None</span>
839+
840+
<span class="c1"># Reset the breakpoint hit</span>
841+
<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">breakpoint_hit</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span>
813842

814843
<span class="n">opcode_window</span> <span class="o">=</span> <span class="n">thread</span><span class="o">.</span><span class="n">memory</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">thread</span><span class="o">.</span><span class="n">instruction_pointer</span><span class="p">,</span> <span class="mi">8</span><span class="p">)</span>
815844

0 commit comments

Comments
 (0)