Skip to content

Commit 944212f

Browse files
Autorefresh Dev Documentation
1 parent 84af437 commit 944212f

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

dev/_modules/libdebug/state/thread_context.html

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -664,11 +664,23 @@ <h1>Source code for libdebug.state.thread_context</h1><div class="highlight"><pr
664664
<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>
665665
<span class="n">maps</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_internal_debugger</span><span class="o">.</span><span class="n">debugging_interface</span><span class="o">.</span><span class="n">get_maps</span><span class="p">()</span>
666666
<span class="k">for</span> <span class="n">return_address</span> <span class="ow">in</span> <span class="n">backtrace</span><span class="p">:</span>
667-
<span class="n">return_address_symbol</span> <span class="o">=</span> <span class="n">resolve_address_in_maps</span><span class="p">(</span><span class="n">return_address</span><span class="p">,</span> <span class="n">maps</span><span class="p">)</span>
667+
<span class="n">filtered_maps</span> <span class="o">=</span> <span class="n">maps</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">return_address</span><span class="p">)</span>
668+
<span class="n">return_address_symbol</span> <span class="o">=</span> <span class="n">resolve_address_in_maps</span><span class="p">(</span><span class="n">return_address</span><span class="p">,</span> <span class="n">filtered_maps</span><span class="p">)</span>
669+
<span class="n">permissions</span> <span class="o">=</span> <span class="n">filtered_maps</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">permissions</span>
670+
<span class="k">if</span> <span class="s2">&quot;rwx&quot;</span> <span class="ow">in</span> <span class="n">permissions</span><span class="p">:</span>
671+
<span class="n">style</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">UNDERLINE</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">&quot;</span>
672+
<span class="k">elif</span> <span class="s2">&quot;x&quot;</span> <span class="ow">in</span> <span class="n">permissions</span><span class="p">:</span>
673+
<span class="n">style</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">RED</span><span class="si">}</span><span class="s2">&quot;</span>
674+
<span class="k">elif</span> <span class="s2">&quot;w&quot;</span> <span class="ow">in</span> <span class="n">permissions</span><span class="p">:</span>
675+
<span class="c1"># This should not happen, but it&#39;s here for completeness</span>
676+
<span class="n">style</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">YELLOW</span><span class="si">}</span><span class="s2">&quot;</span>
677+
<span class="k">elif</span> <span class="s2">&quot;r&quot;</span> <span class="ow">in</span> <span class="n">permissions</span><span class="p">:</span>
678+
<span class="c1"># This should not happen, but it&#39;s here for completeness</span>
679+
<span class="n">style</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">GREEN</span><span class="si">}</span><span class="s2">&quot;</span>
668680
<span class="k">if</span> <span class="n">return_address_symbol</span><span class="p">[:</span><span class="mi">2</span><span class="p">]</span> <span class="o">==</span> <span class="s2">&quot;0x&quot;</span><span class="p">:</span>
669-
<span class="nb">print</span><span class="p">(</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">RED</span><span class="si">}{</span><span class="n">return_address</span><span class="si">:</span><span class="s2">#x</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>
681+
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">style</span><span class="si">}{</span><span class="n">return_address</span><span class="si">:</span><span class="s2">#x</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>
670682
<span class="k">else</span><span class="p">:</span>
671-
<span class="nb">print</span><span class="p">(</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">RED</span><span class="si">}{</span><span class="n">return_address</span><span class="si">:</span><span class="s2">#x</span><span class="si">}</span><span class="s2"> &lt;</span><span class="si">{</span><span class="n">return_address_symbol</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">RESET</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span></div>
683+
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">style</span><span class="si">}{</span><span class="n">return_address</span><span class="si">:</span><span class="s2">#x</span><span class="si">}</span><span class="s2"> &lt;</span><span class="si">{</span><span class="n">return_address_symbol</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">RESET</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span></div>
672684

673685

674686
<span class="k">def</span> <span class="nf">_pprint_reg</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">register</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>

0 commit comments

Comments
 (0)