Skip to content

Commit 84af437

Browse files
Autorefresh Dev Documentation
1 parent eecb4b8 commit 84af437

File tree

4 files changed

+30
-21
lines changed

4 files changed

+30
-21
lines changed

dev/_modules/libdebug/builtin/pretty_print_syscall_handler.html

+23-14
Original file line numberDiff line numberDiff line change
@@ -446,32 +446,35 @@ <h1>Source code for libdebug.builtin.pretty_print_syscall_handler</h1><div class
446446

447447
<div class="viewcode-block" id="pprint_on_enter">
448448
<a class="viewcode-back" href="../../../libdebug.builtin.html#libdebug.builtin.pretty_print_syscall_handler.pprint_on_enter">[docs]</a>
449-
<span class="k">def</span> <span class="nf">pprint_on_enter</span><span class="p">(</span><span class="n">d</span><span class="p">:</span> <span class="n">ThreadContext</span><span class="p">,</span> <span class="n">syscall_number</span><span class="p">:</span> <span class="nb">int</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">:</span> <span class="nb">int</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
449+
<span class="k">def</span> <span class="nf">pprint_on_enter</span><span class="p">(</span><span class="n">t</span><span class="p">:</span> <span class="n">ThreadContext</span><span class="p">,</span> <span class="n">syscall_number</span><span class="p">:</span> <span class="nb">int</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">:</span> <span class="nb">int</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
450450
<span class="w"> </span><span class="sd">&quot;&quot;&quot;Function that will be called when a syscall is entered in pretty print mode.</span>
451451

452452
<span class="sd"> Args:</span>
453-
<span class="sd"> d (ThreadContext): the thread context.</span>
453+
<span class="sd"> t (ThreadContext): the thread context.</span>
454454
<span class="sd"> syscall_number (int): the syscall number.</span>
455455
<span class="sd"> **kwargs (bool): the keyword arguments.</span>
456456
<span class="sd"> &quot;&quot;&quot;</span>
457-
<span class="n">syscall_name</span> <span class="o">=</span> <span class="n">resolve_syscall_name</span><span class="p">(</span><span class="n">d</span><span class="o">.</span><span class="n">_internal_debugger</span><span class="o">.</span><span class="n">arch</span><span class="p">,</span> <span class="n">syscall_number</span><span class="p">)</span>
458-
<span class="n">syscall_args</span> <span class="o">=</span> <span class="n">resolve_syscall_arguments</span><span class="p">(</span><span class="n">d</span><span class="o">.</span><span class="n">_internal_debugger</span><span class="o">.</span><span class="n">arch</span><span class="p">,</span> <span class="n">syscall_number</span><span class="p">)</span>
457+
<span class="n">syscall_name</span> <span class="o">=</span> <span class="n">resolve_syscall_name</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">_internal_debugger</span><span class="o">.</span><span class="n">arch</span><span class="p">,</span> <span class="n">syscall_number</span><span class="p">)</span>
458+
<span class="n">syscall_args</span> <span class="o">=</span> <span class="n">resolve_syscall_arguments</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">_internal_debugger</span><span class="o">.</span><span class="n">arch</span><span class="p">,</span> <span class="n">syscall_number</span><span class="p">)</span>
459459

460460
<span class="n">values</span> <span class="o">=</span> <span class="p">[</span>
461-
<span class="n">d</span><span class="o">.</span><span class="n">syscall_arg0</span><span class="p">,</span>
462-
<span class="n">d</span><span class="o">.</span><span class="n">syscall_arg1</span><span class="p">,</span>
463-
<span class="n">d</span><span class="o">.</span><span class="n">syscall_arg2</span><span class="p">,</span>
464-
<span class="n">d</span><span class="o">.</span><span class="n">syscall_arg3</span><span class="p">,</span>
465-
<span class="n">d</span><span class="o">.</span><span class="n">syscall_arg4</span><span class="p">,</span>
466-
<span class="n">d</span><span class="o">.</span><span class="n">syscall_arg5</span><span class="p">,</span>
461+
<span class="n">t</span><span class="o">.</span><span class="n">syscall_arg0</span><span class="p">,</span>
462+
<span class="n">t</span><span class="o">.</span><span class="n">syscall_arg1</span><span class="p">,</span>
463+
<span class="n">t</span><span class="o">.</span><span class="n">syscall_arg2</span><span class="p">,</span>
464+
<span class="n">t</span><span class="o">.</span><span class="n">syscall_arg3</span><span class="p">,</span>
465+
<span class="n">t</span><span class="o">.</span><span class="n">syscall_arg4</span><span class="p">,</span>
466+
<span class="n">t</span><span class="o">.</span><span class="n">syscall_arg5</span><span class="p">,</span>
467467
<span class="p">]</span>
468468

469+
<span class="c1"># Print the thread id</span>
470+
<span class="n">header</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">ANSIColors</span><span class="o">.</span><span class="n">BOLD</span><span class="si">}{</span><span class="n">t</span><span class="o">.</span><span class="n">tid</span><span class="si">}{</span><span class="n">ANSIColors</span><span class="o">.</span><span class="n">RESET</span><span class="si">}</span><span class="s2"> &quot;</span>
471+
469472
<span class="k">if</span> <span class="s2">&quot;old_args&quot;</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="p">:</span>
470473
<span class="n">old_args</span> <span class="o">=</span> <span class="n">kwargs</span><span class="p">[</span><span class="s2">&quot;old_args&quot;</span><span class="p">]</span>
471474
<span class="n">entries</span> <span class="o">=</span> <span class="p">[</span>
472475
<span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">arg</span><span class="si">}</span><span class="s2"> = </span><span class="si">{</span><span class="n">ANSIColors</span><span class="o">.</span><span class="n">BRIGHT_YELLOW</span><span class="si">}</span><span class="s2">0x</span><span class="si">{</span><span class="n">value</span><span class="si">:</span><span class="s2">x</span><span class="si">}{</span><span class="n">ANSIColors</span><span class="o">.</span><span class="n">DEFAULT_COLOR</span><span class="si">}</span><span class="s2">&quot;</span>
473476
<span class="k">if</span> <span class="n">old_value</span> <span class="o">==</span> <span class="n">value</span>
474-
<span class="k">else</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">arg</span><span class="si">}</span><span class="s2"> = </span><span class="si">{</span><span class="n">ANSIColors</span><span class="o">.</span><span class="n">BRIGHT_YELLOW</span><span class="si">}</span><span class="s2">0x</span><span class="si">{</span><span class="n">old_value</span><span class="si">:</span><span class="s2">x</span><span class="si">}</span><span class="s2"> -&gt; </span><span class="si">{</span><span class="n">ANSIColors</span><span class="o">.</span><span class="n">BRIGHT_YELLOW</span><span class="si">}</span><span class="s2">0x</span><span class="si">{</span><span class="n">value</span><span class="si">:</span><span class="s2">x</span><span class="si">}{</span><span class="n">ANSIColors</span><span class="o">.</span><span class="n">DEFAULT_COLOR</span><span class="si">}</span><span class="s2">&quot;</span>
477+
<span class="k">else</span> <span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">arg</span><span class="si">}</span><span class="s2"> = </span><span class="si">{</span><span class="n">ANSIColors</span><span class="o">.</span><span class="n">STRIKE</span><span class="si">}{</span><span class="n">ANSIColors</span><span class="o">.</span><span class="n">BRIGHT_YELLOW</span><span class="si">}</span><span class="s2">0x</span><span class="si">{</span><span class="n">old_value</span><span class="si">:</span><span class="s2">x</span><span class="si">}{</span><span class="n">ANSIColors</span><span class="o">.</span><span class="n">RESET</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">ANSIColors</span><span class="o">.</span><span class="n">BRIGHT_YELLOW</span><span class="si">}</span><span class="s2">0x</span><span class="si">{</span><span class="n">value</span><span class="si">:</span><span class="s2">x</span><span class="si">}{</span><span class="n">ANSIColors</span><span class="o">.</span><span class="n">DEFAULT_COLOR</span><span class="si">}</span><span class="s2">&quot;</span>
475478
<span class="k">for</span> <span class="n">arg</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">old_value</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">syscall_args</span><span class="p">,</span> <span class="n">values</span><span class="p">,</span> <span class="n">old_args</span><span class="p">,</span> <span class="n">strict</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span>
476479
<span class="k">if</span> <span class="n">arg</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span>
477480
<span class="p">]</span>
@@ -484,18 +487,24 @@ <h1>Source code for libdebug.builtin.pretty_print_syscall_handler</h1><div class
484487

485488
<span class="n">hijacked</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;hijacked&quot;</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span>
486489
<span class="n">user_handled</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;callback&quot;</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span>
490+
<span class="n">hijacker</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;hijacker&quot;</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
487491
<span class="k">if</span> <span class="n">hijacked</span><span class="p">:</span>
488492
<span class="nb">print</span><span class="p">(</span>
489-
<span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">ANSIColors</span><span class="o">.</span><span class="n">RED</span><span class="si">}</span><span class="s2">(user hijacked) </span><span class="si">{</span><span class="n">ANSIColors</span><span class="o">.</span><span class="n">STRIKE</span><span class="si">}{</span><span class="n">ANSIColors</span><span class="o">.</span><span class="n">BLUE</span><span class="si">}{</span><span class="n">syscall_name</span><span class="si">}{</span><span class="n">ANSIColors</span><span class="o">.</span><span class="n">DEFAULT_COLOR</span><span class="si">}</span><span class="s2">(</span><span class="si">{</span><span class="s1">&#39;, &#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">entries</span><span class="p">)</span><span class="si">}</span><span class="s2">)</span><span class="si">{</span><span class="n">ANSIColors</span><span class="o">.</span><span class="n">RESET</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">,</span>
493+
<span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">header</span><span class="si">}{</span><span class="n">ANSIColors</span><span class="o">.</span><span class="n">RED</span><span class="si">}</span><span class="s2">(hijacked) </span><span class="si">{</span><span class="n">ANSIColors</span><span class="o">.</span><span class="n">STRIKE</span><span class="si">}{</span><span class="n">ANSIColors</span><span class="o">.</span><span class="n">BLUE</span><span class="si">}{</span><span class="n">syscall_name</span><span class="si">}{</span><span class="n">ANSIColors</span><span class="o">.</span><span class="n">DEFAULT_COLOR</span><span class="si">}</span><span class="s2">(</span><span class="si">{</span><span class="s1">&#39;, &#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">entries</span><span class="p">)</span><span class="si">}</span><span class="s2">)</span><span class="si">{</span><span class="n">ANSIColors</span><span class="o">.</span><span class="n">RESET</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">,</span>
490494
<span class="p">)</span>
491495
<span class="k">elif</span> <span class="n">user_handled</span><span class="p">:</span>
492496
<span class="nb">print</span><span class="p">(</span>
493-
<span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">ANSIColors</span><span class="o">.</span><span class="n">RED</span><span class="si">}</span><span class="s2">(callback) </span><span class="si">{</span><span class="n">ANSIColors</span><span class="o">.</span><span class="n">BLUE</span><span class="si">}{</span><span class="n">syscall_name</span><span class="si">}{</span><span class="n">ANSIColors</span><span class="o">.</span><span class="n">DEFAULT_COLOR</span><span class="si">}</span><span class="s2">(</span><span class="si">{</span><span class="s1">&#39;, &#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">entries</span><span class="p">)</span><span class="si">}</span><span class="s2">) = &quot;</span><span class="p">,</span>
497+
<span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">header</span><span class="si">}{</span><span class="n">ANSIColors</span><span class="o">.</span><span class="n">RED</span><span class="si">}</span><span class="s2">(callback) </span><span class="si">{</span><span class="n">ANSIColors</span><span class="o">.</span><span class="n">BLUE</span><span class="si">}{</span><span class="n">syscall_name</span><span class="si">}{</span><span class="n">ANSIColors</span><span class="o">.</span><span class="n">DEFAULT_COLOR</span><span class="si">}</span><span class="s2">(</span><span class="si">{</span><span class="s1">&#39;, &#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">entries</span><span class="p">)</span><span class="si">}</span><span class="s2">) = &quot;</span><span class="p">,</span>
498+
<span class="n">end</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">,</span>
499+
<span class="p">)</span>
500+
<span class="k">elif</span> <span class="n">hijacker</span><span class="p">:</span>
501+
<span class="nb">print</span><span class="p">(</span>
502+
<span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">header</span><span class="si">}{</span><span class="n">ANSIColors</span><span class="o">.</span><span class="n">RED</span><span class="si">}</span><span class="s2">(executed) </span><span class="si">{</span><span class="n">ANSIColors</span><span class="o">.</span><span class="n">BLUE</span><span class="si">}{</span><span class="n">syscall_name</span><span class="si">}{</span><span class="n">ANSIColors</span><span class="o">.</span><span class="n">DEFAULT_COLOR</span><span class="si">}</span><span class="s2">(</span><span class="si">{</span><span class="s1">&#39;, &#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">entries</span><span class="p">)</span><span class="si">}</span><span class="s2">) = &quot;</span><span class="p">,</span>
494503
<span class="n">end</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">,</span>
495504
<span class="p">)</span>
496505
<span class="k">else</span><span class="p">:</span>
497506
<span class="nb">print</span><span class="p">(</span>
498-
<span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">ANSIColors</span><span class="o">.</span><span class="n">BLUE</span><span class="si">}{</span><span class="n">syscall_name</span><span class="si">}{</span><span class="n">ANSIColors</span><span class="o">.</span><span class="n">DEFAULT_COLOR</span><span class="si">}</span><span class="s2">(</span><span class="si">{</span><span class="s1">&#39;, &#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">entries</span><span class="p">)</span><span class="si">}</span><span class="s2">) = &quot;</span><span class="p">,</span>
507+
<span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">header</span><span class="si">}{</span><span class="n">ANSIColors</span><span class="o">.</span><span class="n">BLUE</span><span class="si">}{</span><span class="n">syscall_name</span><span class="si">}{</span><span class="n">ANSIColors</span><span class="o">.</span><span class="n">DEFAULT_COLOR</span><span class="si">}</span><span class="s2">(</span><span class="si">{</span><span class="s1">&#39;, &#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">entries</span><span class="p">)</span><span class="si">}</span><span class="s2">) = &quot;</span><span class="p">,</span>
499508
<span class="n">end</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">,</span>
500509
<span class="p">)</span></div>
501510

0 commit comments

Comments
 (0)