File "vm__dump_8c_source.html"

Full Path: /home/attunedd/public_html/byp/izo/con7ext_sym404/rintoar.txt/opt/alt/ruby19/share/doc/ruby/html/dd/dd7/vm__dump_8c_source.html
File size: 205.21 KB
MIME-type: text/html
Charset: utf-8

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Ruby: vm_dump.c Source File</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../jquery.js"></script>
<script type="text/javascript" src="../../dynsections.js"></script>
<link href="../../doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Ruby
   &#160;<span id="projectnumber">1.9.3p551(2014-11-13revision48407)</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('../../',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">vm_dump.c</div>  </div>
</div><!--header-->
<div class="contents">
<a href="../../dd/dd7/vm__dump_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/**********************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment">  vm_dump.c -</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment">  $Author: naruse $</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment">  Copyright (C) 2004-2007 Koichi Sasada</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment">**********************************************************************/</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;</div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="../../de/de6/ruby_2ruby_8h.html">ruby/ruby.h</a>&quot;</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="../../d6/df3/addr2line_8h.html">addr2line.h</a>&quot;</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="../../d8/d32/vm__core_8h.html">vm_core.h</a>&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="../../dd/dd7/vm__dump_8c.html#a8537bba92a6b0ad9700c765c83969b57">   16</a></span>&#160;<span class="preprocessor">#define MAX_POSBUF 128</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"><a class="line" href="../../dd/dd7/vm__dump_8c.html#acd3a62eaa8bfb2c0c2a59c2afa1179bb">   18</a></span>&#160;<span class="preprocessor">#define VM_CFP_CNT(th, cfp) \</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">  ((rb_control_frame_t *)((th)-&gt;stack + (th)-&gt;stack_size) - (rb_control_frame_t *)(cfp))</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="../../dd/dd7/vm__dump_8c.html#ac8e45243b47b9a4d73d977c62c3e6975">   22</a></span>&#160;<a class="code" href="../../dd/dd7/vm__dump_8c.html#ac8e45243b47b9a4d73d977c62c3e6975">control_frame_dump</a>(<a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th, <a class="code" href="../../dd/d84/structrb__control__frame__t.html">rb_control_frame_t</a> *cfp)</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;{</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;    ptrdiff_t pc = -1, <a class="code" href="../../db/d16/debug_8h.html#a1baecad7f27ccf1689612054ecf6a397">bp</a> = -1;</div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;    ptrdiff_t lfp = cfp-&gt;<a class="code" href="../../dd/d84/structrb__control__frame__t.html#af3314cb37c8a27353101bf6f35574946">lfp</a> - th-&gt;<a class="code" href="../../d2/d66/structrb__thread__struct.html#a3fd7aab45a1c539bc9ca022acfc1ad51">stack</a>;</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;    ptrdiff_t dfp = cfp-&gt;<a class="code" href="../../dd/d84/structrb__control__frame__t.html#ac1cafd093e114d3ec99ebeca0ffeb048">dfp</a> - th-&gt;<a class="code" href="../../d2/d66/structrb__thread__struct.html#a3fd7aab45a1c539bc9ca022acfc1ad51">stack</a>;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;    <span class="keywordtype">char</span> lfp_in_heap = <span class="charliteral">&#39; &#39;</span>, dfp_in_heap = <span class="charliteral">&#39; &#39;</span>;</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;    <span class="keywordtype">char</span> posbuf[<a class="code" href="../../dd/dd7/vm__dump_8c.html#a8537bba92a6b0ad9700c765c83969b57">MAX_POSBUF</a>+1];</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;    <span class="keywordtype">int</span> line = 0;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;    <span class="keywordtype">int</span> nopos = 0;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span> *magic, *iseq_name = <span class="stringliteral">&quot;-&quot;</span>, *selfstr = <span class="stringliteral">&quot;-&quot;</span>, *biseq_name = <span class="stringliteral">&quot;-&quot;</span>;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> tmp;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;    <span class="keywordflow">if</span> (cfp-&gt;<a class="code" href="../../dd/d84/structrb__control__frame__t.html#a2b5202626f8eab242cb282e928a19420">block_iseq</a> != 0 &amp;&amp; <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aee74f540353cd2d77d1cb37a3714bd7d">BUILTIN_TYPE</a>(cfp-&gt;<a class="code" href="../../dd/d84/structrb__control__frame__t.html#a2b5202626f8eab242cb282e928a19420">block_iseq</a>) != <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a5f1cc49c4da51d5bdffa64be79ff6fb0">T_NODE</a>) {</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;        biseq_name = <span class="stringliteral">&quot;&quot;</span>;        <span class="comment">/* RSTRING(cfp-&gt;block_iseq-&gt;name)-&gt;ptr; */</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;    }</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;    <span class="keywordflow">if</span> (lfp &lt; 0 || (<span class="keywordtype">size_t</span>)lfp &gt; th-&gt;<a class="code" href="../../d2/d66/structrb__thread__struct.html#a1587dec1a575fb9f8d6a689ef4fdb6b5">stack_size</a>) {</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;        lfp = (ptrdiff_t)cfp-&gt;<a class="code" href="../../dd/d84/structrb__control__frame__t.html#af3314cb37c8a27353101bf6f35574946">lfp</a>;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;        lfp_in_heap = <span class="charliteral">&#39;p&#39;</span>;</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;    }</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    <span class="keywordflow">if</span> (dfp &lt; 0 || (<span class="keywordtype">size_t</span>)dfp &gt; th-&gt;<a class="code" href="../../d2/d66/structrb__thread__struct.html#a1587dec1a575fb9f8d6a689ef4fdb6b5">stack_size</a>) {</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;        dfp = (ptrdiff_t)cfp-&gt;<a class="code" href="../../dd/d84/structrb__control__frame__t.html#ac1cafd093e114d3ec99ebeca0ffeb048">dfp</a>;</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;        dfp_in_heap = <span class="charliteral">&#39;p&#39;</span>;</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    }</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;    <span class="keywordflow">if</span> (cfp-&gt;<a class="code" href="../../dd/d84/structrb__control__frame__t.html#a8e19fd7af779b623f1e9477f271358e6">bp</a>) {</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;        <a class="code" href="../../db/d16/debug_8h.html#a1baecad7f27ccf1689612054ecf6a397">bp</a> = cfp-&gt;<a class="code" href="../../dd/d84/structrb__control__frame__t.html#a8e19fd7af779b623f1e9477f271358e6">bp</a> - th-&gt;<a class="code" href="../../d2/d66/structrb__thread__struct.html#a3fd7aab45a1c539bc9ca022acfc1ad51">stack</a>;</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;    }</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;    <span class="keywordflow">switch</span> (<a class="code" href="../../d8/d32/vm__core_8h.html#a423bad734fe427f4d5deeb4fe71fff65">VM_FRAME_TYPE</a>(cfp)) {</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;      <span class="keywordflow">case</span> <a class="code" href="../../d8/d32/vm__core_8h.html#ac9390ef02c17a0bc7e3bd359264562c7">VM_FRAME_MAGIC_TOP</a>:</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;        magic = <span class="stringliteral">&quot;TOP&quot;</span>;</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;      <span class="keywordflow">case</span> <a class="code" href="../../d8/d32/vm__core_8h.html#abc8be29d36c6252fce6bc61621f81b71">VM_FRAME_MAGIC_METHOD</a>:</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;        magic = <span class="stringliteral">&quot;METHOD&quot;</span>;</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;      <span class="keywordflow">case</span> <a class="code" href="../../d8/d32/vm__core_8h.html#a2524f590c07fceb689b2b7d53114ff5f">VM_FRAME_MAGIC_CLASS</a>:</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;        magic = <span class="stringliteral">&quot;CLASS&quot;</span>;</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;      <span class="keywordflow">case</span> <a class="code" href="../../d8/d32/vm__core_8h.html#a83eeedff3dde6d2d1ffce5d84c2ba2f1">VM_FRAME_MAGIC_BLOCK</a>:</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;        magic = <span class="stringliteral">&quot;BLOCK&quot;</span>;</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;      <span class="keywordflow">case</span> <a class="code" href="../../d8/d32/vm__core_8h.html#a885c6468caef6c3de80b0ad6c50ae38d">VM_FRAME_MAGIC_FINISH</a>:</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;        magic = <span class="stringliteral">&quot;FINISH&quot;</span>;</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;        nopos = 1;</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;      <span class="keywordflow">case</span> <a class="code" href="../../d8/d32/vm__core_8h.html#a26308f33317bb5b96ff89924822e8eab">VM_FRAME_MAGIC_CFUNC</a>:</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;        magic = <span class="stringliteral">&quot;CFUNC&quot;</span>;</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;      <span class="keywordflow">case</span> <a class="code" href="../../d8/d32/vm__core_8h.html#ac1f5b7efa57bccbeb4ff5e7ae6ff18c2">VM_FRAME_MAGIC_PROC</a>:</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;        magic = <span class="stringliteral">&quot;PROC&quot;</span>;</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;      <span class="keywordflow">case</span> <a class="code" href="../../d8/d32/vm__core_8h.html#a57840803108748406429fb1cb3b10530">VM_FRAME_MAGIC_LAMBDA</a>:</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;        magic = <span class="stringliteral">&quot;LAMBDA&quot;</span>;</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;      <span class="keywordflow">case</span> <a class="code" href="../../d8/d32/vm__core_8h.html#a795522d157a66fe8f0cdd335b28099c9">VM_FRAME_MAGIC_IFUNC</a>:</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;        magic = <span class="stringliteral">&quot;IFUNC&quot;</span>;</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;      <span class="keywordflow">case</span> <a class="code" href="../../d8/d32/vm__core_8h.html#ac7b8d797cce488d08572c273f49f28fe">VM_FRAME_MAGIC_EVAL</a>:</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;        magic = <span class="stringliteral">&quot;EVAL&quot;</span>;</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;      <span class="keywordflow">case</span> 0:</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;        magic = <span class="stringliteral">&quot;------&quot;</span>;</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;      <span class="keywordflow">default</span>:</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;        magic = <span class="stringliteral">&quot;(none)&quot;</span>;</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;        <span class="keywordflow">break</span>;</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    }</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    <span class="keywordflow">if</span> (0) {</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;        tmp = <a class="code" href="../../db/d2e/intern_8h.html#acbb281bacf6b80f460143348e26142e9">rb_inspect</a>(cfp-&gt;<a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4c11a50358317e1207affd6d7b4ad576">self</a>);</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;        selfstr = <a class="code" href="../../de/de6/ruby_2ruby_8h.html#afc32c1526ac6cb40ec33cad8782c0bae">StringValueCStr</a>(tmp);</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    }</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    <span class="keywordflow">else</span> {</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;        selfstr = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    }</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    <span class="keywordflow">if</span> (nopos) {</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;        <span class="comment">/* no name */</span></div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    }</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    <span class="keywordflow">else</span> <span class="keywordflow">if</span> (cfp-&gt;<a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4b25ca925a9f60481173632b9c09d4e0">iseq</a> != 0) {</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="../../d8/d32/vm__core_8h.html#aa933aeb7a703c7cc2d136492acbbef22">RUBY_VM_IFUNC_P</a>(cfp-&gt;<a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4b25ca925a9f60481173632b9c09d4e0">iseq</a>)) {</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;            iseq_name = <span class="stringliteral">&quot;&lt;ifunc&gt;&quot;</span>;</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;        }</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;        <span class="keywordflow">else</span> {</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;            pc = cfp-&gt;<a class="code" href="../../dd/d84/structrb__control__frame__t.html#a28b0b301811a891225ba9a58c412482d">pc</a> - cfp-&gt;<a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4b25ca925a9f60481173632b9c09d4e0">iseq</a>-&gt;<a class="code" href="../../d6/de3/structrb__iseq__struct.html#aa70f3e195a4350acbbc130f8a95c9958">iseq_encoded</a>;</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;            iseq_name = <a class="code" href="../../d8/df4/generator_8h.html#aa0c7097c0d82c8372072fbab5a604e39">RSTRING_PTR</a>(cfp-&gt;<a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4b25ca925a9f60481173632b9c09d4e0">iseq</a>-&gt;<a class="code" href="../../d6/de3/structrb__iseq__struct.html#a35596da255ce28a5d1da94c2cc508c7d">name</a>);</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;            line = <a class="code" href="../../de/de9/vm_8c.html#a70289cbb34babceed6243d9471e70e5f">rb_vm_get_sourceline</a>(cfp);</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;            <span class="keywordflow">if</span> (line) {</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;                <a class="code" href="../../d7/d72/subst_8h.html#aa367b75c5aed883fef5befbdf04835a4">snprintf</a>(posbuf, <a class="code" href="../../dd/dd7/vm__dump_8c.html#a8537bba92a6b0ad9700c765c83969b57">MAX_POSBUF</a>, <span class="stringliteral">&quot;%s:%d&quot;</span>, <a class="code" href="../../d8/df4/generator_8h.html#aa0c7097c0d82c8372072fbab5a604e39">RSTRING_PTR</a>(cfp-&gt;<a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4b25ca925a9f60481173632b9c09d4e0">iseq</a>-&gt;<a class="code" href="../../d6/de3/structrb__iseq__struct.html#a06859fa5de56f2ede3cb692f1d9215e2">filename</a>), line);</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;            }</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;        }</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    }</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;    <span class="keywordflow">else</span> <span class="keywordflow">if</span> (cfp-&gt;<a class="code" href="../../dd/d84/structrb__control__frame__t.html#aa0ec76f80ebaf0668b688c4e4e5e3e3f">me</a>) {</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;        iseq_name = <a class="code" href="../../d5/d11/ripper_8c.html#a877bc58c495643fcf49dc64c44631e72">rb_id2name</a>(cfp-&gt;<a class="code" href="../../dd/d84/structrb__control__frame__t.html#aa0ec76f80ebaf0668b688c4e4e5e3e3f">me</a>-&gt;<a class="code" href="../../d7/db7/structrb__method__entry__struct.html#a6c868c50e67b757c6324dfef0f3184dc">def</a>-&gt;<a class="code" href="../../d6/dab/structrb__method__definition__struct.html#a7fc0edb8505a61f8ae8bf2544fa7f676">original_id</a>);</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;        <a class="code" href="../../d7/d72/subst_8h.html#aa367b75c5aed883fef5befbdf04835a4">snprintf</a>(posbuf, <a class="code" href="../../dd/dd7/vm__dump_8c.html#a8537bba92a6b0ad9700c765c83969b57">MAX_POSBUF</a>, <span class="stringliteral">&quot;:%s&quot;</span>, iseq_name);</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;        line = -1;</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    }</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;    fprintf(stderr, <span class="stringliteral">&quot;c:%04&quot;</span><a class="code" href="../../de/de6/ruby_2ruby_8h.html#aca444ec27cdd86e8456e34dfc4aed830">PRIdPTRDIFF</a><span class="stringliteral">&quot; &quot;</span>,</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;            ((<a class="code" href="../../dd/d84/structrb__control__frame__t.html">rb_control_frame_t</a> *)(th-&gt;<a class="code" href="../../d2/d66/structrb__thread__struct.html#a3fd7aab45a1c539bc9ca022acfc1ad51">stack</a> + th-&gt;<a class="code" href="../../d2/d66/structrb__thread__struct.html#a1587dec1a575fb9f8d6a689ef4fdb6b5">stack_size</a>) - cfp));</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;    <span class="keywordflow">if</span> (pc == -1) {</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;        fprintf(stderr, <span class="stringliteral">&quot;p:---- &quot;</span>);</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;    }</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;    <span class="keywordflow">else</span> {</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;        fprintf(stderr, <span class="stringliteral">&quot;p:%04&quot;</span><a class="code" href="../../de/de6/ruby_2ruby_8h.html#aca444ec27cdd86e8456e34dfc4aed830">PRIdPTRDIFF</a><span class="stringliteral">&quot; &quot;</span>, pc);</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;    }</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;    fprintf(stderr, <span class="stringliteral">&quot;s:%04&quot;</span><a class="code" href="../../de/de6/ruby_2ruby_8h.html#aca444ec27cdd86e8456e34dfc4aed830">PRIdPTRDIFF</a><span class="stringliteral">&quot; b:%04&quot;</span><a class="code" href="../../de/de6/ruby_2ruby_8h.html#aca444ec27cdd86e8456e34dfc4aed830">PRIdPTRDIFF</a><span class="stringliteral">&quot; &quot;</span>, (cfp-&gt;<a class="code" href="../../dd/d84/structrb__control__frame__t.html#a29b331b150e5cae1e206cd87f892bad8">sp</a> - th-&gt;<a class="code" href="../../d2/d66/structrb__thread__struct.html#a3fd7aab45a1c539bc9ca022acfc1ad51">stack</a>), <a class="code" href="../../db/d16/debug_8h.html#a1baecad7f27ccf1689612054ecf6a397">bp</a>);</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;    fprintf(stderr, lfp_in_heap == <span class="charliteral">&#39; &#39;</span> ? <span class="stringliteral">&quot;l:%06&quot;</span><a class="code" href="../../de/de6/ruby_2ruby_8h.html#aca444ec27cdd86e8456e34dfc4aed830">PRIdPTRDIFF</a><span class="stringliteral">&quot; &quot;</span> : <span class="stringliteral">&quot;l:%06&quot;</span><a class="code" href="../../de/de6/ruby_2ruby_8h.html#ae6db36a50ae612535a9aac7ad0ec5a0d">PRIxPTRDIFF</a><span class="stringliteral">&quot; &quot;</span>, lfp % 10000);</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;    fprintf(stderr, dfp_in_heap == <span class="charliteral">&#39; &#39;</span> ? <span class="stringliteral">&quot;d:%06&quot;</span><a class="code" href="../../de/de6/ruby_2ruby_8h.html#aca444ec27cdd86e8456e34dfc4aed830">PRIdPTRDIFF</a><span class="stringliteral">&quot; &quot;</span> : <span class="stringliteral">&quot;d:%06&quot;</span><a class="code" href="../../de/de6/ruby_2ruby_8h.html#ae6db36a50ae612535a9aac7ad0ec5a0d">PRIxPTRDIFF</a><span class="stringliteral">&quot; &quot;</span>, dfp % 10000);</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;    fprintf(stderr, <span class="stringliteral">&quot;%-6s&quot;</span>, magic);</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;    <span class="keywordflow">if</span> (line &amp;&amp; !nopos) {</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;        fprintf(stderr, <span class="stringliteral">&quot; %s&quot;</span>, posbuf);</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;    }</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;    <span class="keywordflow">if</span> (0) {</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;        fprintf(stderr, <span class="stringliteral">&quot;              \t&quot;</span>);</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;        fprintf(stderr, <span class="stringliteral">&quot;iseq: %-24s &quot;</span>, iseq_name);</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;        fprintf(stderr, <span class="stringliteral">&quot;self: %-24s &quot;</span>, selfstr);</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;        fprintf(stderr, <span class="stringliteral">&quot;%-1s &quot;</span>, biseq_name);</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;    }</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;    fprintf(stderr, <span class="stringliteral">&quot;\n&quot;</span>);</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;}</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;<span class="keywordtype">void</span></div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="../../dd/dd7/vm__dump_8c.html#a1dbfe98ae709e8806918bdd3121bf986">  146</a></span>&#160;<a class="code" href="../../dd/dd7/vm__dump_8c.html#a1dbfe98ae709e8806918bdd3121bf986">rb_vmdebug_stack_dump_raw</a>(<a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th, <a class="code" href="../../dd/d84/structrb__control__frame__t.html">rb_control_frame_t</a> *cfp)</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;{</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;<span class="preprocessor">#if 0</span></div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;    <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *sp = cfp-&gt;<a class="code" href="../../dd/d84/structrb__control__frame__t.html#a29b331b150e5cae1e206cd87f892bad8">sp</a>, *<a class="code" href="../../db/d16/debug_8h.html#a1baecad7f27ccf1689612054ecf6a397">bp</a> = cfp-&gt;<a class="code" href="../../dd/d84/structrb__control__frame__t.html#a8e19fd7af779b623f1e9477f271358e6">bp</a>;</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;    <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *lfp = cfp-&gt;<a class="code" href="../../dd/d84/structrb__control__frame__t.html#af3314cb37c8a27353101bf6f35574946">lfp</a>;</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;    <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *dfp = cfp-&gt;<a class="code" href="../../dd/d84/structrb__control__frame__t.html#ac1cafd093e114d3ec99ebeca0ffeb048">dfp</a>;</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;    <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *<a class="code" href="../../d2/d99/win32ole_8c.html#a4b5a598a4f53b3724549c48dcfbf7c48">p</a>, *st, *t;</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;    fprintf(stderr, <span class="stringliteral">&quot;-- stack frame ------------\n&quot;</span>);</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;    <span class="keywordflow">for</span> (<a class="code" href="../../d2/d99/win32ole_8c.html#a4b5a598a4f53b3724549c48dcfbf7c48">p</a> = st = th-&gt;<a class="code" href="../../d2/d66/structrb__thread__struct.html#a3fd7aab45a1c539bc9ca022acfc1ad51">stack</a>; <a class="code" href="../../d2/d99/win32ole_8c.html#a4b5a598a4f53b3724549c48dcfbf7c48">p</a> &lt; sp; <a class="code" href="../../d2/d99/win32ole_8c.html#a4b5a598a4f53b3724549c48dcfbf7c48">p</a>++) {</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;        fprintf(stderr, <span class="stringliteral">&quot;%04ld (%p): %08&quot;</span><a class="code" href="../../de/de6/ruby_2ruby_8h.html#aa1bf33f94a5de592de48c16fcfe86db2">PRIxVALUE</a>, (<span class="keywordtype">long</span>)(<a class="code" href="../../d2/d99/win32ole_8c.html#a4b5a598a4f53b3724549c48dcfbf7c48">p</a> - st), <a class="code" href="../../d2/d99/win32ole_8c.html#a4b5a598a4f53b3724549c48dcfbf7c48">p</a>, *<a class="code" href="../../d2/d99/win32ole_8c.html#a4b5a598a4f53b3724549c48dcfbf7c48">p</a>);</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;        t = (<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *)*<a class="code" href="../../d2/d99/win32ole_8c.html#a4b5a598a4f53b3724549c48dcfbf7c48">p</a>;</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;        <span class="keywordflow">if</span> (th-&gt;<a class="code" href="../../d2/d66/structrb__thread__struct.html#a3fd7aab45a1c539bc9ca022acfc1ad51">stack</a> &lt;= t &amp;&amp; t &lt; sp) {</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;            fprintf(stderr, <span class="stringliteral">&quot; (= %ld)&quot;</span>, (<span class="keywordtype">long</span>)((<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *)<a class="code" href="../../d8/d32/vm__core_8h.html#a373f1cafd944ff9e99986582d0fd695b">GC_GUARDED_PTR_REF</a>(t) - th-&gt;<a class="code" href="../../d2/d66/structrb__thread__struct.html#a3fd7aab45a1c539bc9ca022acfc1ad51">stack</a>));</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;        }</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="../../d2/d99/win32ole_8c.html#a4b5a598a4f53b3724549c48dcfbf7c48">p</a> == lfp)</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;            fprintf(stderr, <span class="stringliteral">&quot; &lt;- lfp&quot;</span>);</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="../../d2/d99/win32ole_8c.html#a4b5a598a4f53b3724549c48dcfbf7c48">p</a> == dfp)</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;            fprintf(stderr, <span class="stringliteral">&quot; &lt;- dfp&quot;</span>);</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="../../d2/d99/win32ole_8c.html#a4b5a598a4f53b3724549c48dcfbf7c48">p</a> == <a class="code" href="../../db/d16/debug_8h.html#a1baecad7f27ccf1689612054ecf6a397">bp</a>)</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;            fprintf(stderr, <span class="stringliteral">&quot; &lt;- bp&quot;</span>);  <span class="comment">/* should not be */</span></div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;        fprintf(stderr, <span class="stringliteral">&quot;\n&quot;</span>);</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;    }</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;    fprintf(stderr, <span class="stringliteral">&quot;-- Control frame information &quot;</span></div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;            <span class="stringliteral">&quot;-----------------------------------------------\n&quot;</span>);</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;    <span class="keywordflow">while</span> ((<span class="keywordtype">void</span> *)cfp &lt; (<span class="keywordtype">void</span> *)(th-&gt;<a class="code" href="../../d2/d66/structrb__thread__struct.html#a3fd7aab45a1c539bc9ca022acfc1ad51">stack</a> + th-&gt;<a class="code" href="../../d2/d66/structrb__thread__struct.html#a1587dec1a575fb9f8d6a689ef4fdb6b5">stack_size</a>)) {</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;        <a class="code" href="../../dd/dd7/vm__dump_8c.html#ac8e45243b47b9a4d73d977c62c3e6975">control_frame_dump</a>(th, cfp);</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;        cfp++;</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;    }</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;    fprintf(stderr, <span class="stringliteral">&quot;\n&quot;</span>);</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;}</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;<span class="keywordtype">void</span></div><div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="../../dd/dd7/vm__dump_8c.html#a130d5c43a9da83c86a471cb88c28f080">  184</a></span>&#160;<a class="code" href="../../dd/dd7/vm__dump_8c.html#a130d5c43a9da83c86a471cb88c28f080">rb_vmdebug_stack_dump_raw_current</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;{</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;    <a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th = <a class="code" href="../../d8/d32/vm__core_8h.html#a8deb84ec6023e3229db88ac2c9da6138">GET_THREAD</a>();</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;    <a class="code" href="../../dd/dd7/vm__dump_8c.html#a1dbfe98ae709e8806918bdd3121bf986">rb_vmdebug_stack_dump_raw</a>(th, th-&gt;<a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>);</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;}</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;<span class="keywordtype">void</span></div><div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="../../dd/dd7/vm__dump_8c.html#a00c5c84d7769a956e3651998e92ae823">  191</a></span>&#160;<a class="code" href="../../dd/dd7/vm__dump_8c.html#a00c5c84d7769a956e3651998e92ae823">rb_vmdebug_env_dump_raw</a>(<a class="code" href="../../d0/d73/structrb__env__t.html">rb_env_t</a> *<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *lfp, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *dfp)</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;{</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;    <span class="keywordtype">int</span> <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>;</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;    fprintf(stderr, <span class="stringliteral">&quot;-- env --------------------\n&quot;</span>);</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;    <span class="keywordflow">while</span> (<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>) {</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;        fprintf(stderr, <span class="stringliteral">&quot;--\n&quot;</span>);</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;        <span class="keywordflow">for</span> (<a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a> = 0; <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a> &lt; <a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>-&gt;env_size; <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>++) {</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;            fprintf(stderr, <span class="stringliteral">&quot;%04d: %08&quot;</span><a class="code" href="../../de/de6/ruby_2ruby_8h.html#aa1bf33f94a5de592de48c16fcfe86db2">PRIxVALUE</a><span class="stringliteral">&quot; (%p)&quot;</span>, -<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>-&gt;local_size + <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>, <a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>-&gt;env[<a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>],</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;                   (<span class="keywordtype">void</span> *)&amp;<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>-&gt;env[<a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>]);</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;            <span class="keywordflow">if</span> (&amp;<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>-&gt;env[<a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>] == lfp)</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;                fprintf(stderr, <span class="stringliteral">&quot; &lt;- lfp&quot;</span>);</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;            <span class="keywordflow">if</span> (&amp;<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>-&gt;env[<a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>] == dfp)</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;                fprintf(stderr, <span class="stringliteral">&quot; &lt;- dfp&quot;</span>);</div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;            fprintf(stderr, <span class="stringliteral">&quot;\n&quot;</span>);</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;        }</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>-&gt;prev_envval != 0) {</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;            <a class="code" href="../../d8/d32/vm__core_8h.html#aaa39b3177aba775195d515b937ef78ff">GetEnvPtr</a>(<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>-&gt;prev_envval, <a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>);</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;        }</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;        <span class="keywordflow">else</span> {</div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;            <a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a> = 0;</div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;        }</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;    }</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;    fprintf(stderr, <span class="stringliteral">&quot;---------------------------\n&quot;</span>);</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;}</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;<span class="keywordtype">void</span></div><div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="../../dd/dd7/vm__dump_8c.html#ab3e8c769e0c63ba229bd1b6338639512">  219</a></span>&#160;<a class="code" href="../../dd/dd7/vm__dump_8c.html#ab3e8c769e0c63ba229bd1b6338639512">rb_vmdebug_proc_dump_raw</a>(<a class="code" href="../../d5/d77/structrb__proc__t.html">rb_proc_t</a> *proc)</div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;{</div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;    <a class="code" href="../../d0/d73/structrb__env__t.html">rb_env_t</a> *<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>;</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;    <span class="keywordtype">char</span> *selfstr;</div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;    <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> val = <a class="code" href="../../db/d2e/intern_8h.html#acbb281bacf6b80f460143348e26142e9">rb_inspect</a>(proc-&gt;<a class="code" href="../../d5/d77/structrb__proc__t.html#acf80b0e350012548c28cba1ea64a7a6e">block</a>.<a class="code" href="../../da/dc0/structrb__block__struct.html#ad54e1ec45ab21ef384fe9e4346570397">self</a>);</div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;    selfstr = <a class="code" href="../../de/de6/ruby_2ruby_8h.html#afc32c1526ac6cb40ec33cad8782c0bae">StringValueCStr</a>(val);</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;    fprintf(stderr, <span class="stringliteral">&quot;-- proc -------------------\n&quot;</span>);</div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;    fprintf(stderr, <span class="stringliteral">&quot;self: %s\n&quot;</span>, selfstr);</div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;    <a class="code" href="../../d8/d32/vm__core_8h.html#aaa39b3177aba775195d515b937ef78ff">GetEnvPtr</a>(proc-&gt;<a class="code" href="../../d5/d77/structrb__proc__t.html#acdb9a8c85422bf299615f7942ffbc916">envval</a>, <a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>);</div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;    <a class="code" href="../../dd/dd7/vm__dump_8c.html#a00c5c84d7769a956e3651998e92ae823">rb_vmdebug_env_dump_raw</a>(<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>, proc-&gt;<a class="code" href="../../d5/d77/structrb__proc__t.html#acf80b0e350012548c28cba1ea64a7a6e">block</a>.<a class="code" href="../../da/dc0/structrb__block__struct.html#a834e1c9b35a06714deeb62097636564f">lfp</a>, proc-&gt;<a class="code" href="../../d5/d77/structrb__proc__t.html#acf80b0e350012548c28cba1ea64a7a6e">block</a>.<a class="code" href="../../da/dc0/structrb__block__struct.html#ac3696ee534a836d6ccc55cdeb2181ac5">dfp</a>);</div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;}</div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;<span class="keywordtype">void</span></div><div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="../../dd/dd7/vm__dump_8c.html#aaefbe89c8af3d369bde339711a6e8668">  233</a></span>&#160;<a class="code" href="../../dd/dd7/vm__dump_8c.html#aaefbe89c8af3d369bde339711a6e8668">rb_vmdebug_stack_dump_th</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> thval)</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;{</div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;    <a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th;</div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;    <a class="code" href="../../d8/d32/vm__core_8h.html#a36e942386b2b43383c44e769bffe5808">GetThreadPtr</a>(thval, th);</div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;    <a class="code" href="../../dd/dd7/vm__dump_8c.html#a1dbfe98ae709e8806918bdd3121bf986">rb_vmdebug_stack_dump_raw</a>(th, th-&gt;<a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>);</div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;}</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;<span class="preprocessor">#if VMDEBUG &gt; 2</span></div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;vm_stack_dump_each(<a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th, <a class="code" href="../../dd/d84/structrb__control__frame__t.html">rb_control_frame_t</a> *cfp)</div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;{</div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;    <span class="keywordtype">int</span> <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>;</div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;</div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;    <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> rstr;</div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;    <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *sp = cfp-&gt;<a class="code" href="../../dd/d84/structrb__control__frame__t.html#a29b331b150e5cae1e206cd87f892bad8">sp</a>;</div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;    <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *lfp = cfp-&gt;<a class="code" href="../../dd/d84/structrb__control__frame__t.html#af3314cb37c8a27353101bf6f35574946">lfp</a>;</div><div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;    <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *dfp = cfp-&gt;<a class="code" href="../../dd/d84/structrb__control__frame__t.html#ac1cafd093e114d3ec99ebeca0ffeb048">dfp</a>;</div><div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;</div><div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;    <span class="keywordtype">int</span> <a class="code" href="../../df/d77/ruby_8c.html#ad1447518f4372828b8435ae82e48499e">argc</a> = 0, local_size = 0;</div><div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a>;</div><div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;    <a class="code" href="../../d6/de3/structrb__iseq__struct.html">rb_iseq_t</a> *iseq = cfp-&gt;<a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4b25ca925a9f60481173632b9c09d4e0">iseq</a>;</div><div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;</div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;    <span class="keywordflow">if</span> (iseq == 0) {</div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="../../d8/d32/vm__core_8h.html#ae154762699bf1f722bdf05c22026d678">RUBYVM_CFUNC_FRAME_P</a>(cfp)) {</div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;            <a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a> = <a class="code" href="../../d5/d11/ripper_8c.html#a877bc58c495643fcf49dc64c44631e72">rb_id2name</a>(cfp-&gt;<a class="code" href="../../dd/d84/structrb__control__frame__t.html#aa0ec76f80ebaf0668b688c4e4e5e3e3f">me</a>-&gt;original_id);</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;        }</div><div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;        <span class="keywordflow">else</span> {</div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;            <a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a> = <span class="stringliteral">&quot;?&quot;</span>;</div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;        }</div><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;    }</div><div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;    <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="../../d8/d32/vm__core_8h.html#aa933aeb7a703c7cc2d136492acbbef22">RUBY_VM_IFUNC_P</a>(iseq)) {</div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;        <a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a> = <span class="stringliteral">&quot;&lt;ifunc&gt;&quot;</span>;</div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;    }</div><div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;    <span class="keywordflow">else</span> {</div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;        <a class="code" href="../../df/d77/ruby_8c.html#ad1447518f4372828b8435ae82e48499e">argc</a> = iseq-&gt;<a class="code" href="../../d6/de3/structrb__iseq__struct.html#a5fd0acd110681eeb0f95c3b283451a0a">argc</a>;</div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;        local_size = iseq-&gt;<a class="code" href="../../d6/de3/structrb__iseq__struct.html#afbae994355f91f3ea547570debb757c0">local_size</a>;</div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;        <a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a> = <a class="code" href="../../d8/df4/generator_8h.html#aa0c7097c0d82c8372072fbab5a604e39">RSTRING_PTR</a>(iseq-&gt;<a class="code" href="../../d6/de3/structrb__iseq__struct.html#a35596da255ce28a5d1da94c2cc508c7d">name</a>);</div><div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;    }</div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;</div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;    <span class="comment">/* stack trace header */</span></div><div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;</div><div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="../../d8/d32/vm__core_8h.html#a423bad734fe427f4d5deeb4fe71fff65">VM_FRAME_TYPE</a>(cfp) == <a class="code" href="../../d8/d32/vm__core_8h.html#abc8be29d36c6252fce6bc61621f81b71">VM_FRAME_MAGIC_METHOD</a> ||</div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;        <a class="code" href="../../d8/d32/vm__core_8h.html#a423bad734fe427f4d5deeb4fe71fff65">VM_FRAME_TYPE</a>(cfp) == <a class="code" href="../../d8/d32/vm__core_8h.html#ac9390ef02c17a0bc7e3bd359264562c7">VM_FRAME_MAGIC_TOP</a> ||</div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;        <a class="code" href="../../d8/d32/vm__core_8h.html#a423bad734fe427f4d5deeb4fe71fff65">VM_FRAME_TYPE</a>(cfp) == <a class="code" href="../../d8/d32/vm__core_8h.html#a83eeedff3dde6d2d1ffce5d84c2ba2f1">VM_FRAME_MAGIC_BLOCK</a> ||</div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;        <a class="code" href="../../d8/d32/vm__core_8h.html#a423bad734fe427f4d5deeb4fe71fff65">VM_FRAME_TYPE</a>(cfp) == <a class="code" href="../../d8/d32/vm__core_8h.html#a2524f590c07fceb689b2b7d53114ff5f">VM_FRAME_MAGIC_CLASS</a> ||</div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;        <a class="code" href="../../d8/d32/vm__core_8h.html#a423bad734fe427f4d5deeb4fe71fff65">VM_FRAME_TYPE</a>(cfp) == <a class="code" href="../../d8/d32/vm__core_8h.html#ac1f5b7efa57bccbeb4ff5e7ae6ff18c2">VM_FRAME_MAGIC_PROC</a> ||</div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;        <a class="code" href="../../d8/d32/vm__core_8h.html#a423bad734fe427f4d5deeb4fe71fff65">VM_FRAME_TYPE</a>(cfp) == <a class="code" href="../../d8/d32/vm__core_8h.html#a57840803108748406429fb1cb3b10530">VM_FRAME_MAGIC_LAMBDA</a> ||</div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;        <a class="code" href="../../d8/d32/vm__core_8h.html#a423bad734fe427f4d5deeb4fe71fff65">VM_FRAME_TYPE</a>(cfp) == <a class="code" href="../../d8/d32/vm__core_8h.html#a26308f33317bb5b96ff89924822e8eab">VM_FRAME_MAGIC_CFUNC</a> ||</div><div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;        <a class="code" href="../../d8/d32/vm__core_8h.html#a423bad734fe427f4d5deeb4fe71fff65">VM_FRAME_TYPE</a>(cfp) == <a class="code" href="../../d8/d32/vm__core_8h.html#a795522d157a66fe8f0cdd335b28099c9">VM_FRAME_MAGIC_IFUNC</a> ||</div><div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;        <a class="code" href="../../d8/d32/vm__core_8h.html#a423bad734fe427f4d5deeb4fe71fff65">VM_FRAME_TYPE</a>(cfp) == <a class="code" href="../../d8/d32/vm__core_8h.html#ac7b8d797cce488d08572c273f49f28fe">VM_FRAME_MAGIC_EVAL</a>) {</div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;</div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;        <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *ptr = dfp - local_size;</div><div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;</div><div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;        vm_stack_dump_each(th, cfp + 1);</div><div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;        <a class="code" href="../../dd/dd7/vm__dump_8c.html#ac8e45243b47b9a4d73d977c62c3e6975">control_frame_dump</a>(th, cfp);</div><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;</div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;        <span class="keywordflow">if</span> (lfp != dfp) {</div><div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;            local_size++;</div><div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;        }</div><div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;        <span class="keywordflow">for</span> (<a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a> = 0; <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a> &lt; <a class="code" href="../../df/d77/ruby_8c.html#ad1447518f4372828b8435ae82e48499e">argc</a>; <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>++) {</div><div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;            rstr = <a class="code" href="../../db/d2e/intern_8h.html#acbb281bacf6b80f460143348e26142e9">rb_inspect</a>(*ptr);</div><div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;            fprintf(stderr, <span class="stringliteral">&quot;  arg   %2d: %8s (%p)\n&quot;</span>, <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#afc32c1526ac6cb40ec33cad8782c0bae">StringValueCStr</a>(rstr),</div><div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;                   (<span class="keywordtype">void</span> *)ptr++);</div><div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;        }</div><div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;        <span class="keywordflow">for</span> (; <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a> &lt; local_size - 1; <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>++) {</div><div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;            rstr = <a class="code" href="../../db/d2e/intern_8h.html#acbb281bacf6b80f460143348e26142e9">rb_inspect</a>(*ptr);</div><div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;            fprintf(stderr, <span class="stringliteral">&quot;  local %2d: %8s (%p)\n&quot;</span>, <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#afc32c1526ac6cb40ec33cad8782c0bae">StringValueCStr</a>(rstr),</div><div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;                   (<span class="keywordtype">void</span> *)ptr++);</div><div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;        }</div><div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;</div><div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;        ptr = cfp-&gt;<a class="code" href="../../dd/d84/structrb__control__frame__t.html#a8e19fd7af779b623f1e9477f271358e6">bp</a>;</div><div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;        <span class="keywordflow">for</span> (; ptr &lt; sp; ptr++, <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>++) {</div><div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;            <span class="keywordflow">if</span> (*ptr == <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a2edf6990280eb2637623ccd421dee4f0">Qundef</a>) {</div><div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;                rstr = <a class="code" href="../../db/d2e/intern_8h.html#ada1577ce4242b06ff5c1c52f37f5e679">rb_str_new2</a>(<span class="stringliteral">&quot;undef&quot;</span>);</div><div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;            }</div><div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;            <span class="keywordflow">else</span> {</div><div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;                rstr = <a class="code" href="../../db/d2e/intern_8h.html#acbb281bacf6b80f460143348e26142e9">rb_inspect</a>(*ptr);</div><div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;            }</div><div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;            fprintf(stderr, <span class="stringliteral">&quot;  stack %2d: %8s (%&quot;</span><a class="code" href="../../de/de6/ruby_2ruby_8h.html#aca444ec27cdd86e8456e34dfc4aed830">PRIdPTRDIFF</a><span class="stringliteral">&quot;)\n&quot;</span>, <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#afc32c1526ac6cb40ec33cad8782c0bae">StringValueCStr</a>(rstr),</div><div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;                    (ptr - th-&gt;<a class="code" href="../../d2/d66/structrb__thread__struct.html#a3fd7aab45a1c539bc9ca022acfc1ad51">stack</a>));</div><div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;        }</div><div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;    }</div><div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;    <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="../../d8/d32/vm__core_8h.html#a423bad734fe427f4d5deeb4fe71fff65">VM_FRAME_TYPE</a>(cfp) == <a class="code" href="../../d8/d32/vm__core_8h.html#a885c6468caef6c3de80b0ad6c50ae38d">VM_FRAME_MAGIC_FINISH</a>) {</div><div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;        <span class="keywordflow">if</span> ((th)-&gt;stack + (th)-&gt;stack_size &gt; (<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *)(cfp + 2)) {</div><div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;            vm_stack_dump_each(th, cfp + 1);</div><div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;        }</div><div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;        <span class="keywordflow">else</span> {</div><div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;            <span class="comment">/* SDR(); */</span></div><div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;        }</div><div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;    }</div><div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;    <span class="keywordflow">else</span> {</div><div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;        <a class="code" href="../../db/dcc/error_8c.html#a2d5fb28e54f792e7341b2c45f52f3860">rb_bug</a>(<span class="stringliteral">&quot;unsupport frame type: %08lx&quot;</span>, <a class="code" href="../../d8/d32/vm__core_8h.html#a423bad734fe427f4d5deeb4fe71fff65">VM_FRAME_TYPE</a>(cfp));</div><div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;    }</div><div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;}</div><div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;</div><div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;<span class="keywordtype">void</span></div><div class="line"><a name="l00330"></a><span class="lineno"><a class="line" href="../../dd/dd7/vm__dump_8c.html#a066f88891bb609fc5d137b4347038f40">  330</a></span>&#160;<a class="code" href="../../dd/dd7/vm__dump_8c.html#a066f88891bb609fc5d137b4347038f40">rb_vmdebug_debug_print_register</a>(<a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th)</div><div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;{</div><div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;    <a class="code" href="../../dd/d84/structrb__control__frame__t.html">rb_control_frame_t</a> *cfp = th-&gt;<a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>;</div><div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;    ptrdiff_t pc = -1;</div><div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;    ptrdiff_t lfp = cfp-&gt;<a class="code" href="../../dd/d84/structrb__control__frame__t.html#af3314cb37c8a27353101bf6f35574946">lfp</a> - th-&gt;<a class="code" href="../../d2/d66/structrb__thread__struct.html#a3fd7aab45a1c539bc9ca022acfc1ad51">stack</a>;</div><div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;    ptrdiff_t dfp = cfp-&gt;<a class="code" href="../../dd/d84/structrb__control__frame__t.html#ac1cafd093e114d3ec99ebeca0ffeb048">dfp</a> - th-&gt;<a class="code" href="../../d2/d66/structrb__thread__struct.html#a3fd7aab45a1c539bc9ca022acfc1ad51">stack</a>;</div><div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;    ptrdiff_t cfpi;</div><div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;</div><div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="../../d8/d32/vm__core_8h.html#a79d03ad9b9cf8b7a8ca2b849e495a74f">RUBY_VM_NORMAL_ISEQ_P</a>(cfp-&gt;<a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4b25ca925a9f60481173632b9c09d4e0">iseq</a>)) {</div><div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;        pc = cfp-&gt;<a class="code" href="../../dd/d84/structrb__control__frame__t.html#a28b0b301811a891225ba9a58c412482d">pc</a> - cfp-&gt;<a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4b25ca925a9f60481173632b9c09d4e0">iseq</a>-&gt;<a class="code" href="../../d6/de3/structrb__iseq__struct.html#aa70f3e195a4350acbbc130f8a95c9958">iseq_encoded</a>;</div><div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;    }</div><div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;</div><div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;    <span class="keywordflow">if</span> (lfp &lt; 0 || (<span class="keywordtype">size_t</span>)lfp &gt; th-&gt;<a class="code" href="../../d2/d66/structrb__thread__struct.html#a1587dec1a575fb9f8d6a689ef4fdb6b5">stack_size</a>)</div><div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;        lfp = -1;</div><div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;    <span class="keywordflow">if</span> (dfp &lt; 0 || (<span class="keywordtype">size_t</span>)dfp &gt; th-&gt;<a class="code" href="../../d2/d66/structrb__thread__struct.html#a1587dec1a575fb9f8d6a689ef4fdb6b5">stack_size</a>)</div><div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;        dfp = -1;</div><div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;</div><div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;    cfpi = ((<a class="code" href="../../dd/d84/structrb__control__frame__t.html">rb_control_frame_t</a> *)(th-&gt;<a class="code" href="../../d2/d66/structrb__thread__struct.html#a3fd7aab45a1c539bc9ca022acfc1ad51">stack</a> + th-&gt;<a class="code" href="../../d2/d66/structrb__thread__struct.html#a1587dec1a575fb9f8d6a689ef4fdb6b5">stack_size</a>)) - cfp;</div><div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;    fprintf(stderr, <span class="stringliteral">&quot;  [PC] %04&quot;</span><a class="code" href="../../de/de6/ruby_2ruby_8h.html#aca444ec27cdd86e8456e34dfc4aed830">PRIdPTRDIFF</a><span class="stringliteral">&quot;, [SP] %04&quot;</span><a class="code" href="../../de/de6/ruby_2ruby_8h.html#aca444ec27cdd86e8456e34dfc4aed830">PRIdPTRDIFF</a><span class="stringliteral">&quot;, [LFP] %04&quot;</span><a class="code" href="../../de/de6/ruby_2ruby_8h.html#aca444ec27cdd86e8456e34dfc4aed830">PRIdPTRDIFF</a><span class="stringliteral">&quot;, [DFP] %04&quot;</span><a class="code" href="../../de/de6/ruby_2ruby_8h.html#aca444ec27cdd86e8456e34dfc4aed830">PRIdPTRDIFF</a><span class="stringliteral">&quot;, [CFP] %04&quot;</span><a class="code" href="../../de/de6/ruby_2ruby_8h.html#aca444ec27cdd86e8456e34dfc4aed830">PRIdPTRDIFF</a><span class="stringliteral">&quot;\n&quot;</span>,</div><div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;            pc, (cfp-&gt;<a class="code" href="../../dd/d84/structrb__control__frame__t.html#a29b331b150e5cae1e206cd87f892bad8">sp</a> - th-&gt;<a class="code" href="../../d2/d66/structrb__thread__struct.html#a3fd7aab45a1c539bc9ca022acfc1ad51">stack</a>), lfp, dfp, cfpi);</div><div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;}</div><div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;</div><div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;<span class="keywordtype">void</span></div><div class="line"><a name="l00353"></a><span class="lineno"><a class="line" href="../../dd/dd7/vm__dump_8c.html#a2dcc677a7d7e5b4bebbbcf6afe5955fd">  353</a></span>&#160;<a class="code" href="../../dd/dd7/vm__dump_8c.html#a2dcc677a7d7e5b4bebbbcf6afe5955fd">rb_vmdebug_thread_dump_regs</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> thval)</div><div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;{</div><div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;    <a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th;</div><div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;    <a class="code" href="../../d8/d32/vm__core_8h.html#a36e942386b2b43383c44e769bffe5808">GetThreadPtr</a>(thval, th);</div><div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;    <a class="code" href="../../dd/dd7/vm__dump_8c.html#a066f88891bb609fc5d137b4347038f40">rb_vmdebug_debug_print_register</a>(th);</div><div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;}</div><div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;</div><div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;<span class="keywordtype">void</span></div><div class="line"><a name="l00361"></a><span class="lineno"><a class="line" href="../../dd/dd7/vm__dump_8c.html#ad61ad81b4e157971a62f262265a27160">  361</a></span>&#160;<a class="code" href="../../dd/dd7/vm__dump_8c.html#ad61ad81b4e157971a62f262265a27160">rb_vmdebug_debug_print_pre</a>(<a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th, <a class="code" href="../../dd/d84/structrb__control__frame__t.html">rb_control_frame_t</a> *cfp)</div><div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;{</div><div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;    <a class="code" href="../../d6/de3/structrb__iseq__struct.html">rb_iseq_t</a> *iseq = cfp-&gt;<a class="code" href="../../dd/d84/structrb__control__frame__t.html#a4b25ca925a9f60481173632b9c09d4e0">iseq</a>;</div><div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;</div><div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;    <span class="keywordflow">if</span> (iseq != 0 &amp;&amp; <a class="code" href="../../d8/d32/vm__core_8h.html#a423bad734fe427f4d5deeb4fe71fff65">VM_FRAME_TYPE</a>(cfp) != <a class="code" href="../../d8/d32/vm__core_8h.html#a885c6468caef6c3de80b0ad6c50ae38d">VM_FRAME_MAGIC_FINISH</a>) {</div><div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;        <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *seq = iseq-&gt;<a class="code" href="../../d6/de3/structrb__iseq__struct.html#a8699ab44e2c44e7f8df87e26a9c7bee8">iseq</a>;</div><div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;        ptrdiff_t pc = cfp-&gt;<a class="code" href="../../dd/d84/structrb__control__frame__t.html#a28b0b301811a891225ba9a58c412482d">pc</a> - iseq-&gt;<a class="code" href="../../d6/de3/structrb__iseq__struct.html#aa70f3e195a4350acbbc130f8a95c9958">iseq_encoded</a>;</div><div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;</div><div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;        printf(<span class="stringliteral">&quot;%3&quot;</span><a class="code" href="../../de/de6/ruby_2ruby_8h.html#aca444ec27cdd86e8456e34dfc4aed830">PRIdPTRDIFF</a><span class="stringliteral">&quot; &quot;</span>, <a class="code" href="../../dd/dd7/vm__dump_8c.html#acd3a62eaa8bfb2c0c2a59c2afa1179bb">VM_CFP_CNT</a>(th, cfp));</div><div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;        <span class="keywordflow">if</span> (pc &gt;= 0) {</div><div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;            <a class="code" href="../../dd/d74/iseq_8c.html#a8af8d884c25dccb7380ce2c0e5ce1e1c">rb_iseq_disasm_insn</a>(0, seq, (<span class="keywordtype">size_t</span>)pc, iseq, 0);</div><div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;        }</div><div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;    }</div><div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;</div><div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;<span class="preprocessor">#if VMDEBUG &gt; 3</span></div><div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;    fprintf(stderr, <span class="stringliteral">&quot;        (1)&quot;</span>);</div><div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;    <a class="code" href="../../dd/dd7/vm__dump_8c.html#a066f88891bb609fc5d137b4347038f40">rb_vmdebug_debug_print_register</a>(th);</div><div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;}</div><div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;</div><div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;<span class="keywordtype">void</span></div><div class="line"><a name="l00382"></a><span class="lineno"><a class="line" href="../../dd/dd7/vm__dump_8c.html#a10140e7b70a08eb48ba3befe9485ac42">  382</a></span>&#160;<a class="code" href="../../dd/dd7/vm__dump_8c.html#a10140e7b70a08eb48ba3befe9485ac42">rb_vmdebug_debug_print_post</a>(<a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th, <a class="code" href="../../dd/d84/structrb__control__frame__t.html">rb_control_frame_t</a> *cfp</div><div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;#<span class="keywordflow">if</span> <a class="code" href="../../dc/d92/vm__opts_8h.html#ae1ded4471910adbc5bbe8e6566469341">OPT_STACK_CACHING</a></div><div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;                 , <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> reg_a, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> reg_b</div><div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;#endif</div><div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;    )</div><div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;{</div><div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;<span class="preprocessor">#if VMDEBUG &gt; 9</span></div><div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;    <a class="code" href="../../d8/d32/vm__core_8h.html#ab913ccb5c8b4c3065335169b15925411">SDR2</a>(cfp);</div><div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;</div><div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;<span class="preprocessor">#if VMDEBUG &gt; 3</span></div><div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;    fprintf(stderr, <span class="stringliteral">&quot;        (2)&quot;</span>);</div><div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;    <a class="code" href="../../dd/dd7/vm__dump_8c.html#a066f88891bb609fc5d137b4347038f40">rb_vmdebug_debug_print_register</a>(th);</div><div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;    <span class="comment">/* stack_dump_raw(th, cfp); */</span></div><div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;</div><div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;<span class="preprocessor">#if VMDEBUG &gt; 2</span></div><div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;    <span class="comment">/* stack_dump_thobj(th); */</span></div><div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;    vm_stack_dump_each(th, th-&gt;<a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>);</div><div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;<span class="preprocessor">#if OPT_STACK_CACHING</span></div><div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;    {</div><div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;        <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> rstr;</div><div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;        rstr = <a class="code" href="../../db/d2e/intern_8h.html#acbb281bacf6b80f460143348e26142e9">rb_inspect</a>(reg_a);</div><div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;        fprintf(stderr, <span class="stringliteral">&quot;  sc reg A: %s\n&quot;</span>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#afc32c1526ac6cb40ec33cad8782c0bae">StringValueCStr</a>(rstr));</div><div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;        rstr = <a class="code" href="../../db/d2e/intern_8h.html#acbb281bacf6b80f460143348e26142e9">rb_inspect</a>(reg_b);</div><div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;        fprintf(stderr, <span class="stringliteral">&quot;  sc reg B: %s\n&quot;</span>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#afc32c1526ac6cb40ec33cad8782c0bae">StringValueCStr</a>(rstr));</div><div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;    }</div><div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;    printf</div><div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;        (<span class="stringliteral">&quot;--------------------------------------------------------------\n&quot;</span>);</div><div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;}</div><div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;</div><div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;<span class="preprocessor">#ifdef COLLECT_USAGE_ANALYSIS</span></div><div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;<span class="comment">/* uh = {</span></div><div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;<span class="comment"> *   insn(Fixnum) =&gt; ihash(Hash)</span></div><div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;<span class="comment"> * }</span></div><div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;<span class="comment"> * ihash = {</span></div><div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;<span class="comment"> *   -1(Fixnum) =&gt; count,      # insn usage</span></div><div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;<span class="comment"> *    0(Fixnum) =&gt; ophash,     # operand usage</span></div><div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;<span class="comment"> * }</span></div><div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;<span class="comment"> * ophash = {</span></div><div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;<span class="comment"> *   val(interned string) =&gt; count(Fixnum)</span></div><div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;<span class="comment"> * }</span></div><div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;<span class="keywordtype">void</span></div><div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;<a class="code" href="../../de/de9/vm_8c.html#aadc79f2891643166c13ed45e187396f2">vm_analysis_insn</a>(<span class="keywordtype">int</span> insn)</div><div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;{</div><div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;    <a class="code" href="../../de/de6/ruby_2ruby_8h.html#afa5b9137f051ac26d7ccc8824f178233">ID</a> usage_hash;</div><div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;    <a class="code" href="../../de/de6/ruby_2ruby_8h.html#afa5b9137f051ac26d7ccc8824f178233">ID</a> bigram_hash;</div><div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">int</span> prev_insn = -1;</div><div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;</div><div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;    <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> uh;</div><div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;    <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> ihash;</div><div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;    <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a064e4a3a0f3f97b34dc187ea21bcc2f1">cv</a>;</div><div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;</div><div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;    <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aa50b9d5bc665eb5545f6857c89232161">CONST_ID</a>(usage_hash, <span class="stringliteral">&quot;USAGE_ANALYSIS_INSN&quot;</span>);</div><div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;    <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aa50b9d5bc665eb5545f6857c89232161">CONST_ID</a>(bigram_hash, <span class="stringliteral">&quot;USAGE_ANALYSIS_INSN_BIGRAM&quot;</span>);</div><div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;    uh = <a class="code" href="../../db/d2e/intern_8h.html#a17a81c1a7d754e5ab49fc4b4369b6c8c">rb_const_get</a>(<a class="code" href="../../de/de9/vm_8c.html#a600dc9ffdba414e21dacfe809c4a9ec8">rb_cRubyVM</a>, usage_hash);</div><div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;    <span class="keywordflow">if</span> ((ihash = <a class="code" href="../../d1/d04/hash_8c.html#ab7063832c7ed02351e87922a78e35c32">rb_hash_aref</a>(uh, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac55fae7f748afd3fc2533d0d7d06cf5a">INT2FIX</a>(insn))) == <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>) {</div><div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;        ihash = <a class="code" href="../../d1/d04/hash_8c.html#af1da586524a3a1739fd5b91272037815">rb_hash_new</a>();</div><div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;        <a class="code" href="../../d1/d04/hash_8c.html#ac477edf136d86a33bc06d1fbea67bb9a">rb_hash_aset</a>(uh, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac55fae7f748afd3fc2533d0d7d06cf5a">INT2FIX</a>(insn), ihash);</div><div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;    }</div><div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;    <span class="keywordflow">if</span> ((<a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a064e4a3a0f3f97b34dc187ea21bcc2f1">cv</a> = <a class="code" href="../../d1/d04/hash_8c.html#ab7063832c7ed02351e87922a78e35c32">rb_hash_aref</a>(ihash, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac55fae7f748afd3fc2533d0d7d06cf5a">INT2FIX</a>(-1))) == <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>) {</div><div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;        <a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a064e4a3a0f3f97b34dc187ea21bcc2f1">cv</a> = <a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac55fae7f748afd3fc2533d0d7d06cf5a">INT2FIX</a>(0);</div><div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;    }</div><div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;    <a class="code" href="../../d1/d04/hash_8c.html#ac477edf136d86a33bc06d1fbea67bb9a">rb_hash_aset</a>(ihash, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac55fae7f748afd3fc2533d0d7d06cf5a">INT2FIX</a>(-1), <a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac55fae7f748afd3fc2533d0d7d06cf5a">INT2FIX</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a9444c431b3cb1184e7523fc572f2c758">FIX2INT</a>(<a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a064e4a3a0f3f97b34dc187ea21bcc2f1">cv</a>) + 1));</div><div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;</div><div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;    <span class="comment">/* calc bigram */</span></div><div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;    <span class="keywordflow">if</span> (prev_insn != -1) {</div><div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;        <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> bi;</div><div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;        <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> ary[2];</div><div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;        <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a064e4a3a0f3f97b34dc187ea21bcc2f1">cv</a>;</div><div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;</div><div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;        ary[0] = <a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac55fae7f748afd3fc2533d0d7d06cf5a">INT2FIX</a>(prev_insn);</div><div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;        ary[1] = <a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac55fae7f748afd3fc2533d0d7d06cf5a">INT2FIX</a>(insn);</div><div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;        bi = <a class="code" href="../../dc/dcc/array_8c.html#a575a99eebf6ce65893ed83c2b6783d2d">rb_ary_new4</a>(2, &amp;ary[0]);</div><div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;</div><div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;        uh = <a class="code" href="../../db/d2e/intern_8h.html#a17a81c1a7d754e5ab49fc4b4369b6c8c">rb_const_get</a>(<a class="code" href="../../de/de9/vm_8c.html#a600dc9ffdba414e21dacfe809c4a9ec8">rb_cRubyVM</a>, bigram_hash);</div><div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;        <span class="keywordflow">if</span> ((<a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a064e4a3a0f3f97b34dc187ea21bcc2f1">cv</a> = <a class="code" href="../../d1/d04/hash_8c.html#ab7063832c7ed02351e87922a78e35c32">rb_hash_aref</a>(uh, bi)) == <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>) {</div><div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;            <a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a064e4a3a0f3f97b34dc187ea21bcc2f1">cv</a> = <a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac55fae7f748afd3fc2533d0d7d06cf5a">INT2FIX</a>(0);</div><div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;        }</div><div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;        <a class="code" href="../../d1/d04/hash_8c.html#ac477edf136d86a33bc06d1fbea67bb9a">rb_hash_aset</a>(uh, bi, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac55fae7f748afd3fc2533d0d7d06cf5a">INT2FIX</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a9444c431b3cb1184e7523fc572f2c758">FIX2INT</a>(<a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a064e4a3a0f3f97b34dc187ea21bcc2f1">cv</a>) + 1));</div><div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;    }</div><div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;    prev_insn = insn;</div><div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;}</div><div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;</div><div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;<span class="comment">/* from disasm.c */</span></div><div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;<span class="keyword">extern</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../dd/d74/iseq_8c.html#af94502bbd024003d18377cfb27b2045f">insn_operand_intern</a>(<span class="keywordtype">int</span> insn, <span class="keywordtype">int</span> op_no, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> op,</div><div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;                                 <span class="keywordtype">int</span> <a class="code" href="../../d3/d15/name2ctype_8h.html#aed1cc4dca5d94cb452f79691f54f7423">len</a>, <span class="keywordtype">int</span> pos, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> child);</div><div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;</div><div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;<span class="keywordtype">void</span></div><div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;<a class="code" href="../../de/de9/vm_8c.html#a70b2fd040eae21f04d68a7a6f7ee1a05">vm_analysis_operand</a>(<span class="keywordtype">int</span> insn, <span class="keywordtype">int</span> n, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> op)</div><div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;{</div><div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;    <a class="code" href="../../de/de6/ruby_2ruby_8h.html#afa5b9137f051ac26d7ccc8824f178233">ID</a> usage_hash;</div><div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;</div><div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;    <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> uh;</div><div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;    <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> ihash;</div><div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;    <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> ophash;</div><div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;    <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> valstr;</div><div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;    <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a064e4a3a0f3f97b34dc187ea21bcc2f1">cv</a>;</div><div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;</div><div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;    <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aa50b9d5bc665eb5545f6857c89232161">CONST_ID</a>(usage_hash, <span class="stringliteral">&quot;USAGE_ANALYSIS_INSN&quot;</span>);</div><div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;</div><div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;    uh = <a class="code" href="../../db/d2e/intern_8h.html#a17a81c1a7d754e5ab49fc4b4369b6c8c">rb_const_get</a>(<a class="code" href="../../de/de9/vm_8c.html#a600dc9ffdba414e21dacfe809c4a9ec8">rb_cRubyVM</a>, usage_hash);</div><div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;    <span class="keywordflow">if</span> ((ihash = <a class="code" href="../../d1/d04/hash_8c.html#ab7063832c7ed02351e87922a78e35c32">rb_hash_aref</a>(uh, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac55fae7f748afd3fc2533d0d7d06cf5a">INT2FIX</a>(insn))) == <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>) {</div><div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;        ihash = <a class="code" href="../../d1/d04/hash_8c.html#af1da586524a3a1739fd5b91272037815">rb_hash_new</a>();</div><div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;        <a class="code" href="../../d1/d04/hash_8c.html#ac477edf136d86a33bc06d1fbea67bb9a">rb_hash_aset</a>(uh, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac55fae7f748afd3fc2533d0d7d06cf5a">INT2FIX</a>(insn), ihash);</div><div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;    }</div><div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;    <span class="keywordflow">if</span> ((ophash = <a class="code" href="../../d1/d04/hash_8c.html#ab7063832c7ed02351e87922a78e35c32">rb_hash_aref</a>(ihash, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac55fae7f748afd3fc2533d0d7d06cf5a">INT2FIX</a>(n))) == <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>) {</div><div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;        ophash = <a class="code" href="../../d1/d04/hash_8c.html#af1da586524a3a1739fd5b91272037815">rb_hash_new</a>();</div><div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;        <a class="code" href="../../d1/d04/hash_8c.html#ac477edf136d86a33bc06d1fbea67bb9a">rb_hash_aset</a>(ihash, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac55fae7f748afd3fc2533d0d7d06cf5a">INT2FIX</a>(n), ophash);</div><div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;    }</div><div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;    <span class="comment">/* intern */</span></div><div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;    valstr = <a class="code" href="../../dd/d74/iseq_8c.html#af94502bbd024003d18377cfb27b2045f">insn_operand_intern</a>(insn, n, op, 0, 0, 0);</div><div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;</div><div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;    <span class="comment">/* set count */</span></div><div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;    <span class="keywordflow">if</span> ((<a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a064e4a3a0f3f97b34dc187ea21bcc2f1">cv</a> = <a class="code" href="../../d1/d04/hash_8c.html#ab7063832c7ed02351e87922a78e35c32">rb_hash_aref</a>(ophash, valstr)) == <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>) {</div><div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;        <a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a064e4a3a0f3f97b34dc187ea21bcc2f1">cv</a> = <a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac55fae7f748afd3fc2533d0d7d06cf5a">INT2FIX</a>(0);</div><div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;    }</div><div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;    <a class="code" href="../../d1/d04/hash_8c.html#ac477edf136d86a33bc06d1fbea67bb9a">rb_hash_aset</a>(ophash, valstr, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac55fae7f748afd3fc2533d0d7d06cf5a">INT2FIX</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a9444c431b3cb1184e7523fc572f2c758">FIX2INT</a>(<a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a064e4a3a0f3f97b34dc187ea21bcc2f1">cv</a>) + 1));</div><div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;}</div><div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;</div><div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;<span class="keywordtype">void</span></div><div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;<a class="code" href="../../de/de9/vm_8c.html#a22af4689a1b73006b14a25502191cde5">vm_analysis_register</a>(<span class="keywordtype">int</span> reg, <span class="keywordtype">int</span> isset)</div><div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;{</div><div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;    <a class="code" href="../../de/de6/ruby_2ruby_8h.html#afa5b9137f051ac26d7ccc8824f178233">ID</a> usage_hash;</div><div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;    <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> uh;</div><div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;    <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> rhash;</div><div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;    <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> valstr;</div><div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;    <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span> regstrs[][5] = {</div><div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;        <span class="stringliteral">&quot;pc&quot;</span>,                   <span class="comment">/* 0 */</span></div><div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;        <span class="stringliteral">&quot;sp&quot;</span>,                   <span class="comment">/* 1 */</span></div><div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;        <span class="stringliteral">&quot;cfp&quot;</span>,                  <span class="comment">/* 2 */</span></div><div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;        <span class="stringliteral">&quot;lfp&quot;</span>,                  <span class="comment">/* 3 */</span></div><div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;        <span class="stringliteral">&quot;dfp&quot;</span>,                  <span class="comment">/* 4 */</span></div><div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;        <span class="stringliteral">&quot;self&quot;</span>,                 <span class="comment">/* 5 */</span></div><div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160;        <span class="stringliteral">&quot;iseq&quot;</span>,                 <span class="comment">/* 6 */</span></div><div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;    };</div><div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;    <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span> getsetstr[][4] = {</div><div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;        <span class="stringliteral">&quot;get&quot;</span>,</div><div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;        <span class="stringliteral">&quot;set&quot;</span>,</div><div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;    };</div><div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;    <span class="keyword">static</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> syms[<span class="keyword">sizeof</span>(regstrs) / <span class="keyword">sizeof</span>(regstrs[0])][2];</div><div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;</div><div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;    <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a064e4a3a0f3f97b34dc187ea21bcc2f1">cv</a>;</div><div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;</div><div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;    <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aa50b9d5bc665eb5545f6857c89232161">CONST_ID</a>(usage_hash, <span class="stringliteral">&quot;USAGE_ANALYSIS_REGS&quot;</span>);</div><div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;    <span class="keywordflow">if</span> (syms[0] == 0) {</div><div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;        <span class="keywordtype">char</span> buff[0x10];</div><div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;        <span class="keywordtype">int</span> <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>;</div><div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;</div><div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160;        <span class="keywordflow">for</span> (<a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a> = 0; <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a> &lt; <span class="keyword">sizeof</span>(regstrs) / <span class="keyword">sizeof</span>(regstrs[0]); <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>++) {</div><div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160;            <span class="keywordtype">int</span> j;</div><div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;            <span class="keywordflow">for</span> (j = 0; j &lt; 2; j++) {</div><div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;                snfprintf(stderr, buff, 0x10, <span class="stringliteral">&quot;%d %s %-4s&quot;</span>, <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>, getsetstr[j],</div><div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;                         regstrs[<a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>]);</div><div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160;                syms[<a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>][j] = <a class="code" href="../../dc/d0c/cparse_8c.html#a48bfb6519a45249fb2ec0193ea3b6e1c">ID2SYM</a>(<a class="code" href="../../dc/dcc/array_8c.html#a9cfa42d4b79c89d68c53be8b2150a503">rb_intern</a>(buff));</div><div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;            }</div><div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160;        }</div><div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;    }</div><div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160;    valstr = syms[reg][isset];</div><div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;</div><div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;    uh = <a class="code" href="../../db/d2e/intern_8h.html#a17a81c1a7d754e5ab49fc4b4369b6c8c">rb_const_get</a>(<a class="code" href="../../de/de9/vm_8c.html#a600dc9ffdba414e21dacfe809c4a9ec8">rb_cRubyVM</a>, usage_hash);</div><div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;    <span class="keywordflow">if</span> ((<a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a064e4a3a0f3f97b34dc187ea21bcc2f1">cv</a> = <a class="code" href="../../d1/d04/hash_8c.html#ab7063832c7ed02351e87922a78e35c32">rb_hash_aref</a>(uh, valstr)) == <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>) {</div><div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;        <a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a064e4a3a0f3f97b34dc187ea21bcc2f1">cv</a> = <a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac55fae7f748afd3fc2533d0d7d06cf5a">INT2FIX</a>(0);</div><div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;    }</div><div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;    <a class="code" href="../../d1/d04/hash_8c.html#ac477edf136d86a33bc06d1fbea67bb9a">rb_hash_aset</a>(uh, valstr, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac55fae7f748afd3fc2533d0d7d06cf5a">INT2FIX</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a9444c431b3cb1184e7523fc572f2c758">FIX2INT</a>(<a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a064e4a3a0f3f97b34dc187ea21bcc2f1">cv</a>) + 1));</div><div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;}</div><div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;</div><div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;</div><div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;</div><div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l00556"></a><span class="lineno"><a class="line" href="../../dd/dd7/vm__dump_8c.html#a4829e1bba567279a3c7df1a8e0056c65">  556</a></span>&#160;<a class="code" href="../../dd/dd7/vm__dump_8c.html#a4829e1bba567279a3c7df1a8e0056c65">rb_vmdebug_thread_dump_state</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <span class="keyword">self</span>)</div><div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;{</div><div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;    <a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th;</div><div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;    <a class="code" href="../../dd/d84/structrb__control__frame__t.html">rb_control_frame_t</a> *cfp;</div><div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;    <a class="code" href="../../d8/d32/vm__core_8h.html#a36e942386b2b43383c44e769bffe5808">GetThreadPtr</a>(<span class="keyword">self</span>, th);</div><div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160;    cfp = th-&gt;<a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>;</div><div class="line"><a name="l00562"></a><span class="lineno">  562</span>&#160;</div><div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160;    fprintf(stderr, <span class="stringliteral">&quot;Thread state dump:\n&quot;</span>);</div><div class="line"><a name="l00564"></a><span class="lineno">  564</span>&#160;    fprintf(stderr, <span class="stringliteral">&quot;pc : %p, sp : %p\n&quot;</span>, (<span class="keywordtype">void</span> *)cfp-&gt;<a class="code" href="../../dd/d84/structrb__control__frame__t.html#a28b0b301811a891225ba9a58c412482d">pc</a>, (<span class="keywordtype">void</span> *)cfp-&gt;<a class="code" href="../../dd/d84/structrb__control__frame__t.html#a29b331b150e5cae1e206cd87f892bad8">sp</a>);</div><div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;    fprintf(stderr, <span class="stringliteral">&quot;cfp: %p, lfp: %p, dfp: %p\n&quot;</span>, (<span class="keywordtype">void</span> *)cfp, (<span class="keywordtype">void</span> *)cfp-&gt;<a class="code" href="../../dd/d84/structrb__control__frame__t.html#af3314cb37c8a27353101bf6f35574946">lfp</a>, (<span class="keywordtype">void</span> *)cfp-&gt;dfp);</div><div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160;</div><div class="line"><a name="l00567"></a><span class="lineno">  567</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>;</div><div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160;}</div><div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;</div><div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;<span class="keyword">static</span> <span class="keywordtype">int</span></div><div class="line"><a name="l00571"></a><span class="lineno"><a class="line" href="../../dd/dd7/vm__dump_8c.html#ae5165393259e08cff52a6c3d66619217">  571</a></span>&#160;<a class="code" href="../../dd/dd7/vm__dump_8c.html#ae5165393259e08cff52a6c3d66619217">bugreport_backtrace</a>(<span class="keywordtype">void</span> *arg, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> file, <span class="keywordtype">int</span> line, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../d7/d2a/structiseq__inline__cache__entry.html#afe485ee1e6c1127a5512d3ec8c43d6a6">method</a>)</div><div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;{</div><div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span> *filename = <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a4832bad8845a35fc50f7a160901854a1">NIL_P</a>(file) ? <span class="stringliteral">&quot;ruby&quot;</span> : <a class="code" href="../../d8/df4/generator_8h.html#aa0c7097c0d82c8372072fbab5a604e39">RSTRING_PTR</a>(file);</div><div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160;    <span class="keywordflow">if</span> (!*(<span class="keywordtype">int</span> *)arg) {</div><div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160;        fprintf(stderr, <span class="stringliteral">&quot;-- Ruby level backtrace information &quot;</span></div><div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160;                <span class="stringliteral">&quot;----------------------------------------\n&quot;</span>);</div><div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;        *(<span class="keywordtype">int</span> *)arg = 1;</div><div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;    }</div><div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a4832bad8845a35fc50f7a160901854a1">NIL_P</a>(<a class="code" href="../../d7/d2a/structiseq__inline__cache__entry.html#afe485ee1e6c1127a5512d3ec8c43d6a6">method</a>)) {</div><div class="line"><a name="l00580"></a><span class="lineno">  580</span>&#160;        fprintf(stderr, <span class="stringliteral">&quot;%s:%d:in unknown method\n&quot;</span>, filename, line);</div><div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160;    }</div><div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160;    <span class="keywordflow">else</span> {</div><div class="line"><a name="l00583"></a><span class="lineno">  583</span>&#160;        fprintf(stderr, <span class="stringliteral">&quot;%s:%d:in `%s&#39;\n&quot;</span>, filename, line, <a class="code" href="../../d8/df4/generator_8h.html#aa0c7097c0d82c8372072fbab5a604e39">RSTRING_PTR</a>(<a class="code" href="../../d7/d2a/structiseq__inline__cache__entry.html#afe485ee1e6c1127a5512d3ec8c43d6a6">method</a>));</div><div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160;    }</div><div class="line"><a name="l00585"></a><span class="lineno">  585</span>&#160;    <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160;}</div><div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;</div><div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;<span class="preprocessor">#if defined(__FreeBSD__) &amp;&amp; defined(__OPTIMIZE__)</span></div><div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;<span class="preprocessor">#undef HAVE_BACKTRACE</span></div><div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;<span class="preprocessor">#if HAVE_BACKTRACE</span></div><div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;<span class="preprocessor"># include &lt;execinfo.h&gt;</span></div><div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;<span class="preprocessor">#elif defined(_WIN32)</span></div><div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;<span class="preprocessor"># include &lt;imagehlp.h&gt;</span></div><div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;<span class="preprocessor"># ifndef SYMOPT_DEBUG</span></div><div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160;<span class="preprocessor">#  define SYMOPT_DEBUG 0x80000000</span></div><div class="line"><a name="l00597"></a><span class="lineno">  597</span>&#160;<span class="preprocessor"># endif</span></div><div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160;<span class="preprocessor"># ifndef MAX_SYM_NAME</span></div><div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;<span class="preprocessor"># define MAX_SYM_NAME 2000</span></div><div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div><div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;    DWORD64 Offset;</div><div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;    WORD Segment;</div><div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;    ADDRESS_MODE Mode;</div><div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160;} ADDRESS64;</div><div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div><div class="line"><a name="l00606"></a><span class="lineno">  606</span>&#160;    DWORD64 Thread;</div><div class="line"><a name="l00607"></a><span class="lineno">  607</span>&#160;    <a class="code" href="../../d2/d99/win32ole_8c.html#ad3196fc77437d523ed1459e8ff809d3a">DWORD</a> ThCallbackStack;</div><div class="line"><a name="l00608"></a><span class="lineno">  608</span>&#160;    <a class="code" href="../../d2/d99/win32ole_8c.html#ad3196fc77437d523ed1459e8ff809d3a">DWORD</a> ThCallbackBStore;</div><div class="line"><a name="l00609"></a><span class="lineno">  609</span>&#160;    <a class="code" href="../../d2/d99/win32ole_8c.html#ad3196fc77437d523ed1459e8ff809d3a">DWORD</a> NextCallback;</div><div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160;    <a class="code" href="../../d2/d99/win32ole_8c.html#ad3196fc77437d523ed1459e8ff809d3a">DWORD</a> FramePointer;</div><div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;    DWORD64 KiCallUserMode;</div><div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160;    DWORD64 KeUserCallbackDispatcher;</div><div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160;    DWORD64 SystemRangeStart;</div><div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160;    DWORD64 KiUserExceptionDispatcher;</div><div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160;    DWORD64 StackBase;</div><div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160;    DWORD64 StackLimit;</div><div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160;    DWORD64 Reserved[5];</div><div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160;} KDHELP64;</div><div class="line"><a name="l00619"></a><span class="lineno">  619</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div><div class="line"><a name="l00620"></a><span class="lineno">  620</span>&#160;    ADDRESS64 AddrPC;</div><div class="line"><a name="l00621"></a><span class="lineno">  621</span>&#160;    ADDRESS64 AddrReturn;</div><div class="line"><a name="l00622"></a><span class="lineno">  622</span>&#160;    ADDRESS64 AddrFrame;</div><div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160;    ADDRESS64 AddrStack;</div><div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160;    ADDRESS64 AddrBStore;</div><div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160;    <span class="keywordtype">void</span> *FuncTableEntry;</div><div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;    DWORD64 Params[4];</div><div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160;    BOOL Far;</div><div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160;    BOOL Virtual;</div><div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;    DWORD64 Reserved[3];</div><div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160;    KDHELP64 KdHelp;</div><div class="line"><a name="l00631"></a><span class="lineno">  631</span>&#160;} STACKFRAME64;</div><div class="line"><a name="l00632"></a><span class="lineno">  632</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div><div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160;    <a class="code" href="../../d2/d99/win32ole_8c.html#a516d92a41f815ad3c448380a9aa3e4d0">ULONG</a> SizeOfStruct;</div><div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160;    <a class="code" href="../../d2/d99/win32ole_8c.html#a516d92a41f815ad3c448380a9aa3e4d0">ULONG</a> TypeIndex;</div><div class="line"><a name="l00635"></a><span class="lineno">  635</span>&#160;    ULONG64 Reserved[2];</div><div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160;    <a class="code" href="../../d2/d99/win32ole_8c.html#a516d92a41f815ad3c448380a9aa3e4d0">ULONG</a> Index;</div><div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160;    <a class="code" href="../../d2/d99/win32ole_8c.html#a516d92a41f815ad3c448380a9aa3e4d0">ULONG</a> Size;</div><div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160;    ULONG64 ModBase;</div><div class="line"><a name="l00639"></a><span class="lineno">  639</span>&#160;    <a class="code" href="../../d2/d99/win32ole_8c.html#a516d92a41f815ad3c448380a9aa3e4d0">ULONG</a> Flags;</div><div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160;    ULONG64 Value;</div><div class="line"><a name="l00641"></a><span class="lineno">  641</span>&#160;    ULONG64 Address;</div><div class="line"><a name="l00642"></a><span class="lineno">  642</span>&#160;    <a class="code" href="../../d2/d99/win32ole_8c.html#a516d92a41f815ad3c448380a9aa3e4d0">ULONG</a> Register;</div><div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160;    <a class="code" href="../../d2/d99/win32ole_8c.html#a516d92a41f815ad3c448380a9aa3e4d0">ULONG</a> Scope;</div><div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160;    <a class="code" href="../../d2/d99/win32ole_8c.html#a516d92a41f815ad3c448380a9aa3e4d0">ULONG</a> Tag;</div><div class="line"><a name="l00645"></a><span class="lineno">  645</span>&#160;    <a class="code" href="../../d2/d99/win32ole_8c.html#a516d92a41f815ad3c448380a9aa3e4d0">ULONG</a> NameLen;</div><div class="line"><a name="l00646"></a><span class="lineno">  646</span>&#160;    <a class="code" href="../../d2/d99/win32ole_8c.html#a516d92a41f815ad3c448380a9aa3e4d0">ULONG</a> MaxNameLen;</div><div class="line"><a name="l00647"></a><span class="lineno">  647</span>&#160;    <span class="keywordtype">char</span> Name[1];</div><div class="line"><a name="l00648"></a><span class="lineno">  648</span>&#160;} SYMBOL_INFO;</div><div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div><div class="line"><a name="l00650"></a><span class="lineno">  650</span>&#160;    <a class="code" href="../../d2/d99/win32ole_8c.html#ad3196fc77437d523ed1459e8ff809d3a">DWORD</a> SizeOfStruct;</div><div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160;    <span class="keywordtype">void</span> *Key;</div><div class="line"><a name="l00652"></a><span class="lineno">  652</span>&#160;    <a class="code" href="../../d2/d99/win32ole_8c.html#ad3196fc77437d523ed1459e8ff809d3a">DWORD</a> LineNumber;</div><div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160;    <span class="keywordtype">char</span> *FileName;</div><div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160;    DWORD64 Address;</div><div class="line"><a name="l00655"></a><span class="lineno">  655</span>&#160;} IMAGEHLP_LINE64;</div><div class="line"><a name="l00656"></a><span class="lineno">  656</span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">void</span> *PREAD_PROCESS_MEMORY_ROUTINE64;</div><div class="line"><a name="l00657"></a><span class="lineno">  657</span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">void</span> *PFUNCTION_TABLE_ACCESS_ROUTINE64;</div><div class="line"><a name="l00658"></a><span class="lineno">  658</span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">void</span> *PGET_MODULE_BASE_ROUTINE64;</div><div class="line"><a name="l00659"></a><span class="lineno">  659</span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">void</span> *PTRANSLATE_ADDRESS_ROUTINE64;</div><div class="line"><a name="l00660"></a><span class="lineno">  660</span>&#160;<span class="preprocessor"># endif</span></div><div class="line"><a name="l00661"></a><span class="lineno">  661</span>&#160;</div><div class="line"><a name="l00662"></a><span class="lineno">  662</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00663"></a><span class="lineno">  663</span>&#160;dump_thread(<span class="keywordtype">void</span> *arg)</div><div class="line"><a name="l00664"></a><span class="lineno">  664</span>&#160;{</div><div class="line"><a name="l00665"></a><span class="lineno">  665</span>&#160;    HANDLE dbghelp;</div><div class="line"><a name="l00666"></a><span class="lineno">  666</span>&#160;    BOOL (WINAPI *pSymInitialize)(HANDLE, <span class="keyword">const</span> <span class="keywordtype">char</span> *, BOOL);</div><div class="line"><a name="l00667"></a><span class="lineno">  667</span>&#160;    BOOL (WINAPI *pSymCleanup)(HANDLE);</div><div class="line"><a name="l00668"></a><span class="lineno">  668</span>&#160;    BOOL (WINAPI *pStackWalk64)(<a class="code" href="../../d2/d99/win32ole_8c.html#ad3196fc77437d523ed1459e8ff809d3a">DWORD</a>, HANDLE, HANDLE, STACKFRAME64 *, <span class="keywordtype">void</span> *, PREAD_PROCESS_MEMORY_ROUTINE64, PFUNCTION_TABLE_ACCESS_ROUTINE64, PGET_MODULE_BASE_ROUTINE64, PTRANSLATE_ADDRESS_ROUTINE64);</div><div class="line"><a name="l00669"></a><span class="lineno">  669</span>&#160;    DWORD64 (WINAPI *pSymGetModuleBase64)(HANDLE, DWORD64);</div><div class="line"><a name="l00670"></a><span class="lineno">  670</span>&#160;    BOOL (WINAPI *pSymFromAddr)(HANDLE, DWORD64, DWORD64 *, SYMBOL_INFO *);</div><div class="line"><a name="l00671"></a><span class="lineno">  671</span>&#160;    BOOL (WINAPI *pSymGetLineFromAddr64)(HANDLE, DWORD64, <a class="code" href="../../d2/d99/win32ole_8c.html#ad3196fc77437d523ed1459e8ff809d3a">DWORD</a> *, IMAGEHLP_LINE64 *);</div><div class="line"><a name="l00672"></a><span class="lineno">  672</span>&#160;    HANDLE (WINAPI *pOpenThread)(<a class="code" href="../../d2/d99/win32ole_8c.html#ad3196fc77437d523ed1459e8ff809d3a">DWORD</a>, BOOL, <a class="code" href="../../d2/d99/win32ole_8c.html#ad3196fc77437d523ed1459e8ff809d3a">DWORD</a>);</div><div class="line"><a name="l00673"></a><span class="lineno">  673</span>&#160;    <a class="code" href="../../d2/d99/win32ole_8c.html#ad3196fc77437d523ed1459e8ff809d3a">DWORD</a> tid = *(<a class="code" href="../../d2/d99/win32ole_8c.html#ad3196fc77437d523ed1459e8ff809d3a">DWORD</a> *)arg;</div><div class="line"><a name="l00674"></a><span class="lineno">  674</span>&#160;    HANDLE ph;</div><div class="line"><a name="l00675"></a><span class="lineno">  675</span>&#160;    HANDLE th;</div><div class="line"><a name="l00676"></a><span class="lineno">  676</span>&#160;</div><div class="line"><a name="l00677"></a><span class="lineno">  677</span>&#160;    dbghelp = LoadLibrary(<span class="stringliteral">&quot;dbghelp.dll&quot;</span>);</div><div class="line"><a name="l00678"></a><span class="lineno">  678</span>&#160;    <span class="keywordflow">if</span> (!dbghelp) <span class="keywordflow">return</span>;</div><div class="line"><a name="l00679"></a><span class="lineno">  679</span>&#160;    pSymInitialize = (BOOL (WINAPI *)(HANDLE, <span class="keyword">const</span> <span class="keywordtype">char</span> *, BOOL))GetProcAddress(dbghelp, <span class="stringliteral">&quot;SymInitialize&quot;</span>);</div><div class="line"><a name="l00680"></a><span class="lineno">  680</span>&#160;    pSymCleanup = (BOOL (WINAPI *)(HANDLE))GetProcAddress(dbghelp, <span class="stringliteral">&quot;SymCleanup&quot;</span>);</div><div class="line"><a name="l00681"></a><span class="lineno">  681</span>&#160;    pStackWalk64 = (BOOL (WINAPI *)(<a class="code" href="../../d2/d99/win32ole_8c.html#ad3196fc77437d523ed1459e8ff809d3a">DWORD</a>, HANDLE, HANDLE, STACKFRAME64 *, <span class="keywordtype">void</span> *, PREAD_PROCESS_MEMORY_ROUTINE64, PFUNCTION_TABLE_ACCESS_ROUTINE64, PGET_MODULE_BASE_ROUTINE64, PTRANSLATE_ADDRESS_ROUTINE64))GetProcAddress(dbghelp, <span class="stringliteral">&quot;StackWalk64&quot;</span>);</div><div class="line"><a name="l00682"></a><span class="lineno">  682</span>&#160;    pSymGetModuleBase64 = (DWORD64 (WINAPI *)(HANDLE, DWORD64))GetProcAddress(dbghelp, <span class="stringliteral">&quot;SymGetModuleBase64&quot;</span>);</div><div class="line"><a name="l00683"></a><span class="lineno">  683</span>&#160;    pSymFromAddr = (BOOL (WINAPI *)(HANDLE, DWORD64, DWORD64 *, SYMBOL_INFO *))GetProcAddress(dbghelp, <span class="stringliteral">&quot;SymFromAddr&quot;</span>);</div><div class="line"><a name="l00684"></a><span class="lineno">  684</span>&#160;    pSymGetLineFromAddr64 = (BOOL (WINAPI *)(HANDLE, DWORD64, <a class="code" href="../../d2/d99/win32ole_8c.html#ad3196fc77437d523ed1459e8ff809d3a">DWORD</a> *, IMAGEHLP_LINE64 *))GetProcAddress(dbghelp, <span class="stringliteral">&quot;SymGetLineFromAddr64&quot;</span>);</div><div class="line"><a name="l00685"></a><span class="lineno">  685</span>&#160;    pOpenThread = (HANDLE (WINAPI *)(<a class="code" href="../../d2/d99/win32ole_8c.html#ad3196fc77437d523ed1459e8ff809d3a">DWORD</a>, BOOL, <a class="code" href="../../d2/d99/win32ole_8c.html#ad3196fc77437d523ed1459e8ff809d3a">DWORD</a>))GetProcAddress(GetModuleHandle(<span class="stringliteral">&quot;kernel32.dll&quot;</span>), <span class="stringliteral">&quot;OpenThread&quot;</span>);</div><div class="line"><a name="l00686"></a><span class="lineno">  686</span>&#160;    <span class="keywordflow">if</span> (pSymInitialize &amp;&amp; pSymCleanup &amp;&amp; pStackWalk64 &amp;&amp; pSymGetModuleBase64 &amp;&amp;</div><div class="line"><a name="l00687"></a><span class="lineno">  687</span>&#160;        pSymFromAddr &amp;&amp; pSymGetLineFromAddr64 &amp;&amp; pOpenThread) {</div><div class="line"><a name="l00688"></a><span class="lineno">  688</span>&#160;        SymSetOptions(SYMOPT_UNDNAME | SYMOPT_DEFERRED_LOADS | SYMOPT_DEBUG | SYMOPT_LOAD_LINES);</div><div class="line"><a name="l00689"></a><span class="lineno">  689</span>&#160;        ph = GetCurrentProcess();</div><div class="line"><a name="l00690"></a><span class="lineno">  690</span>&#160;        pSymInitialize(ph, <a class="code" href="../../d4/db0/__sdbm_8c.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="code" href="../../d1/d5c/nkf_8h.html#aa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a>);</div><div class="line"><a name="l00691"></a><span class="lineno">  691</span>&#160;        th = pOpenThread(THREAD_SUSPEND_RESUME|THREAD_GET_CONTEXT, <a class="code" href="../../d1/d5c/nkf_8h.html#aa93f0eb578d23995850d61f7d61c55c1">FALSE</a>, tid);</div><div class="line"><a name="l00692"></a><span class="lineno">  692</span>&#160;        <span class="keywordflow">if</span> (th) {</div><div class="line"><a name="l00693"></a><span class="lineno">  693</span>&#160;            <span class="keywordflow">if</span> (SuspendThread(th) != (<a class="code" href="../../d2/d99/win32ole_8c.html#ad3196fc77437d523ed1459e8ff809d3a">DWORD</a>)-1) {</div><div class="line"><a name="l00694"></a><span class="lineno">  694</span>&#160;                CONTEXT context;</div><div class="line"><a name="l00695"></a><span class="lineno">  695</span>&#160;                memset(&amp;context, 0, <span class="keyword">sizeof</span>(context));</div><div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160;                context.ContextFlags = CONTEXT_FULL;</div><div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160;                <span class="keywordflow">if</span> (GetThreadContext(th, &amp;context)) {</div><div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160;                    <span class="keywordtype">char</span> libpath[MAX_PATH];</div><div class="line"><a name="l00699"></a><span class="lineno">  699</span>&#160;                    <span class="keywordtype">char</span> <a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#ac37f17a60c8b5533aac4840c681f62b8">buf</a>[<span class="keyword">sizeof</span>(SYMBOL_INFO) + MAX_SYM_NAME];</div><div class="line"><a name="l00700"></a><span class="lineno">  700</span>&#160;                    SYMBOL_INFO *info = (SYMBOL_INFO *)<a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#ac37f17a60c8b5533aac4840c681f62b8">buf</a>;</div><div class="line"><a name="l00701"></a><span class="lineno">  701</span>&#160;                    <a class="code" href="../../d2/d99/win32ole_8c.html#ad3196fc77437d523ed1459e8ff809d3a">DWORD</a> mac;</div><div class="line"><a name="l00702"></a><span class="lineno">  702</span>&#160;                    STACKFRAME64 frame;</div><div class="line"><a name="l00703"></a><span class="lineno">  703</span>&#160;                    memset(&amp;frame, 0, <span class="keyword">sizeof</span>(frame));</div><div class="line"><a name="l00704"></a><span class="lineno">  704</span>&#160;<span class="preprocessor">#if defined(_M_AMD64) || defined(__x86_64__)</span></div><div class="line"><a name="l00705"></a><span class="lineno">  705</span>&#160;                    mac = IMAGE_FILE_MACHINE_AMD64;</div><div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160;                    frame.AddrPC.Mode = AddrModeFlat;</div><div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160;                    frame.AddrPC.Offset = context.Rip;</div><div class="line"><a name="l00708"></a><span class="lineno">  708</span>&#160;                    frame.AddrFrame.Mode = AddrModeFlat;</div><div class="line"><a name="l00709"></a><span class="lineno">  709</span>&#160;                    frame.AddrFrame.Offset = context.Rbp;</div><div class="line"><a name="l00710"></a><span class="lineno">  710</span>&#160;                    frame.AddrStack.Mode = AddrModeFlat;</div><div class="line"><a name="l00711"></a><span class="lineno">  711</span>&#160;                    frame.AddrStack.Offset = context.Rsp;</div><div class="line"><a name="l00712"></a><span class="lineno">  712</span>&#160;<span class="preprocessor">#elif defined(_M_IA64) || defined(__ia64__)</span></div><div class="line"><a name="l00713"></a><span class="lineno">  713</span>&#160;                    mac = IMAGE_FILE_MACHINE_IA64;</div><div class="line"><a name="l00714"></a><span class="lineno">  714</span>&#160;                    frame.AddrPC.Mode = AddrModeFlat;</div><div class="line"><a name="l00715"></a><span class="lineno">  715</span>&#160;                    frame.AddrPC.Offset = context.StIIP;</div><div class="line"><a name="l00716"></a><span class="lineno">  716</span>&#160;                    frame.AddrBStore.Mode = AddrModeFlat;</div><div class="line"><a name="l00717"></a><span class="lineno">  717</span>&#160;                    frame.AddrBStore.Offset = context.RsBSP;</div><div class="line"><a name="l00718"></a><span class="lineno">  718</span>&#160;                    frame.AddrStack.Mode = AddrModeFlat;</div><div class="line"><a name="l00719"></a><span class="lineno">  719</span>&#160;                    frame.AddrStack.Offset = context.IntSp;</div><div class="line"><a name="l00720"></a><span class="lineno">  720</span>&#160;<span class="preprocessor">#else   </span><span class="comment">/* i386 */</span><span class="preprocessor"></span></div><div class="line"><a name="l00721"></a><span class="lineno">  721</span>&#160;                    mac = IMAGE_FILE_MACHINE_I386;</div><div class="line"><a name="l00722"></a><span class="lineno">  722</span>&#160;                    frame.AddrPC.Mode = AddrModeFlat;</div><div class="line"><a name="l00723"></a><span class="lineno">  723</span>&#160;                    frame.AddrPC.Offset = context.Eip;</div><div class="line"><a name="l00724"></a><span class="lineno">  724</span>&#160;                    frame.AddrFrame.Mode = AddrModeFlat;</div><div class="line"><a name="l00725"></a><span class="lineno">  725</span>&#160;                    frame.AddrFrame.Offset = context.Ebp;</div><div class="line"><a name="l00726"></a><span class="lineno">  726</span>&#160;                    frame.AddrStack.Mode = AddrModeFlat;</div><div class="line"><a name="l00727"></a><span class="lineno">  727</span>&#160;                    frame.AddrStack.Offset = context.Esp;</div><div class="line"><a name="l00728"></a><span class="lineno">  728</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00729"></a><span class="lineno">  729</span>&#160;</div><div class="line"><a name="l00730"></a><span class="lineno">  730</span>&#160;                    <span class="keywordflow">while</span> (pStackWalk64(mac, ph, th, &amp;frame, &amp;context, <a class="code" href="../../d4/db0/__sdbm_8c.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>,</div><div class="line"><a name="l00731"></a><span class="lineno">  731</span>&#160;                                        <a class="code" href="../../d4/db0/__sdbm_8c.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="code" href="../../d4/db0/__sdbm_8c.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>, <a class="code" href="../../d4/db0/__sdbm_8c.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)) {</div><div class="line"><a name="l00732"></a><span class="lineno">  732</span>&#160;                        DWORD64 addr = frame.AddrPC.Offset;</div><div class="line"><a name="l00733"></a><span class="lineno">  733</span>&#160;                        IMAGEHLP_LINE64 line;</div><div class="line"><a name="l00734"></a><span class="lineno">  734</span>&#160;                        DWORD64 displacement;</div><div class="line"><a name="l00735"></a><span class="lineno">  735</span>&#160;                        <a class="code" href="../../d2/d99/win32ole_8c.html#ad3196fc77437d523ed1459e8ff809d3a">DWORD</a> tmp;</div><div class="line"><a name="l00736"></a><span class="lineno">  736</span>&#160;</div><div class="line"><a name="l00737"></a><span class="lineno">  737</span>&#160;                        <span class="keywordflow">if</span> (addr == frame.AddrReturn.Offset || addr == 0 ||</div><div class="line"><a name="l00738"></a><span class="lineno">  738</span>&#160;                            frame.AddrReturn.Offset == 0)</div><div class="line"><a name="l00739"></a><span class="lineno">  739</span>&#160;                            <span class="keywordflow">break</span>;</div><div class="line"><a name="l00740"></a><span class="lineno">  740</span>&#160;</div><div class="line"><a name="l00741"></a><span class="lineno">  741</span>&#160;                        memset(<a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#ac37f17a60c8b5533aac4840c681f62b8">buf</a>, 0, <span class="keyword">sizeof</span>(<a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#ac37f17a60c8b5533aac4840c681f62b8">buf</a>));</div><div class="line"><a name="l00742"></a><span class="lineno">  742</span>&#160;                        info-&gt;SizeOfStruct = <span class="keyword">sizeof</span>(SYMBOL_INFO);</div><div class="line"><a name="l00743"></a><span class="lineno">  743</span>&#160;                        info-&gt;MaxNameLen = MAX_SYM_NAME;</div><div class="line"><a name="l00744"></a><span class="lineno">  744</span>&#160;                        <span class="keywordflow">if</span> (pSymFromAddr(ph, addr, &amp;displacement, info)) {</div><div class="line"><a name="l00745"></a><span class="lineno">  745</span>&#160;                            <span class="keywordflow">if</span> (GetModuleFileName((HANDLE)(<a class="code" href="../../dc/db1/win32_8h.html#a728e973c799f206f0151c8a3bd1e5699">uintptr_t</a>)pSymGetModuleBase64(ph, addr), libpath, <span class="keyword">sizeof</span>(libpath)))</div><div class="line"><a name="l00746"></a><span class="lineno">  746</span>&#160;                                fprintf(stderr, <span class="stringliteral">&quot;%s&quot;</span>, libpath);</div><div class="line"><a name="l00747"></a><span class="lineno">  747</span>&#160;                            fprintf(stderr, <span class="stringliteral">&quot;(%s+0x%I64x)&quot;</span>,</div><div class="line"><a name="l00748"></a><span class="lineno">  748</span>&#160;                                    info-&gt;Name, displacement);</div><div class="line"><a name="l00749"></a><span class="lineno">  749</span>&#160;                        }</div><div class="line"><a name="l00750"></a><span class="lineno">  750</span>&#160;                        fprintf(stderr, <span class="stringliteral">&quot; [0x%p]&quot;</span>, (<span class="keywordtype">void</span> *)(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a>)addr);</div><div class="line"><a name="l00751"></a><span class="lineno">  751</span>&#160;                        memset(&amp;line, 0, <span class="keyword">sizeof</span>(line));</div><div class="line"><a name="l00752"></a><span class="lineno">  752</span>&#160;                        line.SizeOfStruct = <span class="keyword">sizeof</span>(line);</div><div class="line"><a name="l00753"></a><span class="lineno">  753</span>&#160;                        <span class="keywordflow">if</span> (pSymGetLineFromAddr64(ph, addr, &amp;tmp, &amp;line))</div><div class="line"><a name="l00754"></a><span class="lineno">  754</span>&#160;                            fprintf(stderr, <span class="stringliteral">&quot; %s:%lu&quot;</span>, line.FileName, line.LineNumber);</div><div class="line"><a name="l00755"></a><span class="lineno">  755</span>&#160;                        fprintf(stderr, <span class="stringliteral">&quot;\n&quot;</span>);</div><div class="line"><a name="l00756"></a><span class="lineno">  756</span>&#160;                    }</div><div class="line"><a name="l00757"></a><span class="lineno">  757</span>&#160;                }</div><div class="line"><a name="l00758"></a><span class="lineno">  758</span>&#160;</div><div class="line"><a name="l00759"></a><span class="lineno">  759</span>&#160;                ResumeThread(th);</div><div class="line"><a name="l00760"></a><span class="lineno">  760</span>&#160;            }</div><div class="line"><a name="l00761"></a><span class="lineno">  761</span>&#160;            CloseHandle(th);</div><div class="line"><a name="l00762"></a><span class="lineno">  762</span>&#160;        }</div><div class="line"><a name="l00763"></a><span class="lineno">  763</span>&#160;        pSymCleanup(ph);</div><div class="line"><a name="l00764"></a><span class="lineno">  764</span>&#160;    }</div><div class="line"><a name="l00765"></a><span class="lineno">  765</span>&#160;    FreeLibrary(dbghelp);</div><div class="line"><a name="l00766"></a><span class="lineno">  766</span>&#160;}</div><div class="line"><a name="l00767"></a><span class="lineno">  767</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00768"></a><span class="lineno">  768</span>&#160;</div><div class="line"><a name="l00769"></a><span class="lineno">  769</span>&#160;<span class="keywordtype">void</span></div><div class="line"><a name="l00770"></a><span class="lineno"><a class="line" href="../../dd/dd7/vm__dump_8c.html#af1b67bbf4b72295a772178d0bd939dd0">  770</a></span>&#160;<a class="code" href="../../dd/dd7/vm__dump_8c.html#af1b67bbf4b72295a772178d0bd939dd0">rb_vm_bugreport</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00771"></a><span class="lineno">  771</span>&#160;{</div><div class="line"><a name="l00772"></a><span class="lineno">  772</span>&#160;    <a class="code" href="../../db/d74/structrb__vm__struct.html">rb_vm_t</a> *vm = <a class="code" href="../../d8/d32/vm__core_8h.html#a6cfcd3997994924c8cd13c3b5c099ec6">GET_VM</a>();</div><div class="line"><a name="l00773"></a><span class="lineno">  773</span>&#160;    <span class="keywordflow">if</span> (vm) {</div><div class="line"><a name="l00774"></a><span class="lineno">  774</span>&#160;        <span class="keywordtype">int</span> <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a> = 0;</div><div class="line"><a name="l00775"></a><span class="lineno">  775</span>&#160;        <a class="code" href="../../d8/d32/vm__core_8h.html#ac33c371d81972685538097cb4f49181f">SDR</a>();</div><div class="line"><a name="l00776"></a><span class="lineno">  776</span>&#160;</div><div class="line"><a name="l00777"></a><span class="lineno">  777</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="../../d8/d32/vm__core_8h.html#a53d4377e7685dd916255009372937561">rb_backtrace_each</a>(<a class="code" href="../../dd/dd7/vm__dump_8c.html#ae5165393259e08cff52a6c3d66619217">bugreport_backtrace</a>, &amp;<a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>)) {</div><div class="line"><a name="l00778"></a><span class="lineno">  778</span>&#160;            fputs(<span class="stringliteral">&quot;\n&quot;</span>, stderr);</div><div class="line"><a name="l00779"></a><span class="lineno">  779</span>&#160;        }</div><div class="line"><a name="l00780"></a><span class="lineno">  780</span>&#160;    }</div><div class="line"><a name="l00781"></a><span class="lineno">  781</span>&#160;</div><div class="line"><a name="l00782"></a><span class="lineno">  782</span>&#160;<span class="preprocessor">#if HAVE_BACKTRACE || defined(_WIN32)</span></div><div class="line"><a name="l00783"></a><span class="lineno">  783</span>&#160;    fprintf(stderr, <span class="stringliteral">&quot;-- C level backtrace information &quot;</span></div><div class="line"><a name="l00784"></a><span class="lineno">  784</span>&#160;            <span class="stringliteral">&quot;-------------------------------------------\n&quot;</span>);</div><div class="line"><a name="l00785"></a><span class="lineno">  785</span>&#160;</div><div class="line"><a name="l00786"></a><span class="lineno">  786</span>&#160;    {</div><div class="line"><a name="l00787"></a><span class="lineno">  787</span>&#160;<span class="preprocessor">#if defined __MACH__ &amp;&amp; defined __APPLE__</span></div><div class="line"><a name="l00788"></a><span class="lineno">  788</span>&#160;        fprintf(stderr, <span class="stringliteral">&quot;\n&quot;</span>);</div><div class="line"><a name="l00789"></a><span class="lineno">  789</span>&#160;        fprintf(stderr, <span class="stringliteral">&quot;   See Crash Report log file under &quot;</span></div><div class="line"><a name="l00790"></a><span class="lineno">  790</span>&#160;                <span class="stringliteral">&quot;~/Library/Logs/CrashReporter or\n&quot;</span>);</div><div class="line"><a name="l00791"></a><span class="lineno">  791</span>&#160;        fprintf(stderr, <span class="stringliteral">&quot;   /Library/Logs/CrashReporter, for &quot;</span></div><div class="line"><a name="l00792"></a><span class="lineno">  792</span>&#160;                <span class="stringliteral">&quot;the more detail of.\n&quot;</span>);</div><div class="line"><a name="l00793"></a><span class="lineno">  793</span>&#160;<span class="preprocessor">#elif HAVE_BACKTRACE</span></div><div class="line"><a name="l00794"></a><span class="lineno">  794</span>&#160;<span class="preprocessor">#define MAX_NATIVE_TRACE 1024</span></div><div class="line"><a name="l00795"></a><span class="lineno">  795</span>&#160;        <span class="keyword">static</span> <span class="keywordtype">void</span> *trace[MAX_NATIVE_TRACE];</div><div class="line"><a name="l00796"></a><span class="lineno">  796</span>&#160;        <span class="keywordtype">int</span> n = backtrace(trace, MAX_NATIVE_TRACE);</div><div class="line"><a name="l00797"></a><span class="lineno">  797</span>&#160;        <span class="keywordtype">char</span> **syms = backtrace_symbols(trace, n);</div><div class="line"><a name="l00798"></a><span class="lineno">  798</span>&#160;</div><div class="line"><a name="l00799"></a><span class="lineno">  799</span>&#160;        <span class="keywordflow">if</span> (syms) {</div><div class="line"><a name="l00800"></a><span class="lineno">  800</span>&#160;<span class="preprocessor">#ifdef USE_ELF</span></div><div class="line"><a name="l00801"></a><span class="lineno">  801</span>&#160;            rb_dump_backtrace_with_lines(n, trace, syms);</div><div class="line"><a name="l00802"></a><span class="lineno">  802</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00803"></a><span class="lineno">  803</span>&#160;            <span class="keywordtype">int</span> <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>;</div><div class="line"><a name="l00804"></a><span class="lineno">  804</span>&#160;            <span class="keywordflow">for</span> (<a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>=0; <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>&lt;n; <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>++) {</div><div class="line"><a name="l00805"></a><span class="lineno">  805</span>&#160;                fprintf(stderr, <span class="stringliteral">&quot;%s\n&quot;</span>, syms[<a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>]);</div><div class="line"><a name="l00806"></a><span class="lineno">  806</span>&#160;            }</div><div class="line"><a name="l00807"></a><span class="lineno">  807</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00808"></a><span class="lineno">  808</span>&#160;            <a class="code" href="../../d2/d99/win32ole_8c.html#a18100522f0b19b5e9b9875f5737a9386">free</a>(syms);</div><div class="line"><a name="l00809"></a><span class="lineno">  809</span>&#160;        }</div><div class="line"><a name="l00810"></a><span class="lineno">  810</span>&#160;<span class="preprocessor">#elif defined(_WIN32)</span></div><div class="line"><a name="l00811"></a><span class="lineno">  811</span>&#160;        <a class="code" href="../../d2/d99/win32ole_8c.html#ad3196fc77437d523ed1459e8ff809d3a">DWORD</a> tid = GetCurrentThreadId();</div><div class="line"><a name="l00812"></a><span class="lineno">  812</span>&#160;        HANDLE th = (HANDLE)_beginthread(dump_thread, 0, &amp;tid);</div><div class="line"><a name="l00813"></a><span class="lineno">  813</span>&#160;        <span class="keywordflow">if</span> (th != (HANDLE)-1)</div><div class="line"><a name="l00814"></a><span class="lineno">  814</span>&#160;            WaitForSingleObject(th, INFINITE);</div><div class="line"><a name="l00815"></a><span class="lineno">  815</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00816"></a><span class="lineno">  816</span>&#160;    }</div><div class="line"><a name="l00817"></a><span class="lineno">  817</span>&#160;</div><div class="line"><a name="l00818"></a><span class="lineno">  818</span>&#160;    fprintf(stderr, <span class="stringliteral">&quot;\n&quot;</span>);</div><div class="line"><a name="l00819"></a><span class="lineno">  819</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* HAVE_BACKTRACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00820"></a><span class="lineno">  820</span>&#160;</div><div class="line"><a name="l00821"></a><span class="lineno">  821</span>&#160;    fprintf(stderr, <span class="stringliteral">&quot;-- Other runtime information &quot;</span></div><div class="line"><a name="l00822"></a><span class="lineno">  822</span>&#160;            <span class="stringliteral">&quot;-----------------------------------------------\n\n&quot;</span>);</div><div class="line"><a name="l00823"></a><span class="lineno">  823</span>&#160;    {</div><div class="line"><a name="l00824"></a><span class="lineno">  824</span>&#160;        <span class="keywordtype">int</span> <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>;</div><div class="line"><a name="l00825"></a><span class="lineno">  825</span>&#160;</div><div class="line"><a name="l00826"></a><span class="lineno">  826</span>&#160;        fprintf(stderr, <span class="stringliteral">&quot;* Loaded script: %s\n&quot;</span>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#afc32c1526ac6cb40ec33cad8782c0bae">StringValueCStr</a>(vm-&gt;<a class="code" href="../../db/d74/structrb__vm__struct.html#a0fabbe8c44aac34d9538388955e2b461">progname</a>));</div><div class="line"><a name="l00827"></a><span class="lineno">  827</span>&#160;        fprintf(stderr, <span class="stringliteral">&quot;\n&quot;</span>);</div><div class="line"><a name="l00828"></a><span class="lineno">  828</span>&#160;        fprintf(stderr, <span class="stringliteral">&quot;* Loaded features:\n\n&quot;</span>);</div><div class="line"><a name="l00829"></a><span class="lineno">  829</span>&#160;        <span class="keywordflow">for</span> (<a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>=0; <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>&lt;<a class="code" href="../../d8/df4/generator_8h.html#ae988773ed219452578f881fc7189c486">RARRAY_LEN</a>(vm-&gt;<a class="code" href="../../db/d74/structrb__vm__struct.html#adc9a2f20cba11e9a872bbe603b7db593">loaded_features</a>); <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>++) {</div><div class="line"><a name="l00830"></a><span class="lineno">  830</span>&#160;            fprintf(stderr, <span class="stringliteral">&quot; %4d %s\n&quot;</span>, <a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#afc32c1526ac6cb40ec33cad8782c0bae">StringValueCStr</a>(<a class="code" href="../../d8/df4/generator_8h.html#abb794fe2d7c73eea87e7ba2273939a8e">RARRAY_PTR</a>(vm-&gt;<a class="code" href="../../db/d74/structrb__vm__struct.html#adc9a2f20cba11e9a872bbe603b7db593">loaded_features</a>)[<a class="code" href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a>]));</div><div class="line"><a name="l00831"></a><span class="lineno">  831</span>&#160;        }</div><div class="line"><a name="l00832"></a><span class="lineno">  832</span>&#160;        fprintf(stderr, <span class="stringliteral">&quot;\n&quot;</span>);</div><div class="line"><a name="l00833"></a><span class="lineno">  833</span>&#160;</div><div class="line"><a name="l00834"></a><span class="lineno">  834</span>&#160;<span class="preprocessor">#if __linux__</span></div><div class="line"><a name="l00835"></a><span class="lineno">  835</span>&#160;        {</div><div class="line"><a name="l00836"></a><span class="lineno">  836</span>&#160;            <a class="code" href="../../db/ddf/struct____s_f_i_l_e.html">FILE</a> *fp = fopen(<span class="stringliteral">&quot;/proc/self/maps&quot;</span>, <span class="stringliteral">&quot;r&quot;</span>);</div><div class="line"><a name="l00837"></a><span class="lineno">  837</span>&#160;            <span class="keywordflow">if</span> (fp) {</div><div class="line"><a name="l00838"></a><span class="lineno">  838</span>&#160;                fprintf(stderr, <span class="stringliteral">&quot;* Process memory map:\n\n&quot;</span>);</div><div class="line"><a name="l00839"></a><span class="lineno">  839</span>&#160;</div><div class="line"><a name="l00840"></a><span class="lineno">  840</span>&#160;                <span class="keywordflow">while</span> (!<a class="code" href="../../da/d50/vsnprintf_8c.html#ac752882e678e3368676e57e5eb4b9d86">feof</a>(fp)) {</div><div class="line"><a name="l00841"></a><span class="lineno">  841</span>&#160;                    <span class="keywordtype">char</span> buff[0x100];</div><div class="line"><a name="l00842"></a><span class="lineno">  842</span>&#160;                    <span class="keywordtype">size_t</span> rn = fread(buff, 1, 0x100, fp);</div><div class="line"><a name="l00843"></a><span class="lineno">  843</span>&#160;                    fwrite(buff, 1, rn, stderr);</div><div class="line"><a name="l00844"></a><span class="lineno">  844</span>&#160;                }</div><div class="line"><a name="l00845"></a><span class="lineno">  845</span>&#160;</div><div class="line"><a name="l00846"></a><span class="lineno">  846</span>&#160;                fclose(fp);</div><div class="line"><a name="l00847"></a><span class="lineno">  847</span>&#160;                fprintf(stderr, <span class="stringliteral">&quot;\n\n&quot;</span>);</div><div class="line"><a name="l00848"></a><span class="lineno">  848</span>&#160;            }</div><div class="line"><a name="l00849"></a><span class="lineno">  849</span>&#160;        }</div><div class="line"><a name="l00850"></a><span class="lineno">  850</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* __linux__ */</span><span class="preprocessor"></span></div><div class="line"><a name="l00851"></a><span class="lineno">  851</span>&#160;    }</div><div class="line"><a name="l00852"></a><span class="lineno">  852</span>&#160;}</div><div class="ttc" id="structrb__thread__struct_html_a2ed7f694d58d876aa6f0fae6986bc921"><div class="ttname"><a href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">rb_thread_struct::cfp</a></div><div class="ttdeci">rb_control_frame_t * cfp</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00400">vm_core.h:400</a></div></div>
<div class="ttc" id="vm__core_8h_html_a83eeedff3dde6d2d1ffce5d84c2ba2f1"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a83eeedff3dde6d2d1ffce5d84c2ba2f1">VM_FRAME_MAGIC_BLOCK</a></div><div class="ttdeci">#define VM_FRAME_MAGIC_BLOCK</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00573">vm_core.h:573</a></div></div>
<div class="ttc" id="iseq_8c_html_a8af8d884c25dccb7380ce2c0e5ce1e1c"><div class="ttname"><a href="../../dd/d74/iseq_8c.html#a8af8d884c25dccb7380ce2c0e5ce1e1c">rb_iseq_disasm_insn</a></div><div class="ttdeci">int rb_iseq_disasm_insn(VALUE ret, VALUE *iseq, size_t pos, rb_iseq_t *iseqdat, VALUE child)</div><div class="ttdoc">Disassemble a instruction Iseq -&gt; Iseq inspect object. </div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d74/iseq_8c_source.html#l00849">iseq.c:849</a></div></div>
<div class="ttc" id="structrb__control__frame__t_html_a2b5202626f8eab242cb282e928a19420"><div class="ttname"><a href="../../dd/d84/structrb__control__frame__t.html#a2b5202626f8eab242cb282e928a19420">rb_control_frame_t::block_iseq</a></div><div class="ttdeci">rb_iseq_t * block_iseq</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00341">vm_core.h:341</a></div></div>
<div class="ttc" id="array_8c_html_a575a99eebf6ce65893ed83c2b6783d2d"><div class="ttname"><a href="../../dc/dcc/array_8c.html#a575a99eebf6ce65893ed83c2b6783d2d">rb_ary_new4</a></div><div class="ttdeci">VALUE rb_ary_new4(long n, const VALUE *elts)</div><div class="ttdef"><b>Definition:</b> <a href="../../dc/dcc/array_8c_source.html#l00366">array.c:366</a></div></div>
<div class="ttc" id="error_8c_html_a2d5fb28e54f792e7341b2c45f52f3860"><div class="ttname"><a href="../../db/dcc/error_8c.html#a2d5fb28e54f792e7341b2c45f52f3860">rb_bug</a></div><div class="ttdeci">void rb_bug(const char *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="../../db/dcc/error_8c_source.html#l00265">error.c:265</a></div></div>
<div class="ttc" id="nkf_8h_html_aa93f0eb578d23995850d61f7d61c55c1"><div class="ttname"><a href="../../d1/d5c/nkf_8h.html#aa93f0eb578d23995850d61f7d61c55c1">FALSE</a></div><div class="ttdeci">#define FALSE</div><div class="ttdef"><b>Definition:</b> <a href="../../d1/d5c/nkf_8h_source.html#l00185">nkf.h:185</a></div></div>
<div class="ttc" id="vm__core_8h_html_aa933aeb7a703c7cc2d136492acbbef22"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#aa933aeb7a703c7cc2d136492acbbef22">RUBY_VM_IFUNC_P</a></div><div class="ttdeci">#define RUBY_VM_IFUNC_P(ptr)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00620">vm_core.h:620</a></div></div>
<div class="ttc" id="win32ole_8c_html_acb559820d9ca11295b4500f179ef6392"><div class="ttname"><a href="../../d2/d99/win32ole_8c.html#acb559820d9ca11295b4500f179ef6392">i</a></div><div class="ttdeci">int i</div><div class="ttdef"><b>Definition:</b> <a href="../../d2/d99/win32ole_8c_source.html#l00776">win32ole.c:776</a></div></div>
<div class="ttc" id="vm__dump_8c_html_acd3a62eaa8bfb2c0c2a59c2afa1179bb"><div class="ttname"><a href="../../dd/dd7/vm__dump_8c.html#acd3a62eaa8bfb2c0c2a59c2afa1179bb">VM_CFP_CNT</a></div><div class="ttdeci">#define VM_CFP_CNT(th, cfp)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/dd7/vm__dump_8c_source.html#l00018">vm_dump.c:18</a></div></div>
<div class="ttc" id="vm__dump_8c_html_ac8e45243b47b9a4d73d977c62c3e6975"><div class="ttname"><a href="../../dd/dd7/vm__dump_8c.html#ac8e45243b47b9a4d73d977c62c3e6975">control_frame_dump</a></div><div class="ttdeci">static void control_frame_dump(rb_thread_t *th, rb_control_frame_t *cfp)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/dd7/vm__dump_8c_source.html#l00022">vm_dump.c:22</a></div></div>
<div class="ttc" id="vm__core_8h_html_a26308f33317bb5b96ff89924822e8eab"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a26308f33317bb5b96ff89924822e8eab">VM_FRAME_MAGIC_CFUNC</a></div><div class="ttdeci">#define VM_FRAME_MAGIC_CFUNC</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00577">vm_core.h:577</a></div></div>
<div class="ttc" id="vm__dump_8c_html_a4829e1bba567279a3c7df1a8e0056c65"><div class="ttname"><a href="../../dd/dd7/vm__dump_8c.html#a4829e1bba567279a3c7df1a8e0056c65">rb_vmdebug_thread_dump_state</a></div><div class="ttdeci">VALUE rb_vmdebug_thread_dump_state(VALUE self)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/dd7/vm__dump_8c_source.html#l00556">vm_dump.c:556</a></div></div>
<div class="ttc" id="ruby_2ruby_8h_html"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html">ruby.h</a></div></div>
<div class="ttc" id="vm__core_8h_html_a79d03ad9b9cf8b7a8ca2b849e495a74f"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a79d03ad9b9cf8b7a8ca2b849e495a74f">RUBY_VM_NORMAL_ISEQ_P</a></div><div class="ttdeci">#define RUBY_VM_NORMAL_ISEQ_P(ptr)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00621">vm_core.h:621</a></div></div>
<div class="ttc" id="structrb__vm__struct_html_a0fabbe8c44aac34d9538388955e2b461"><div class="ttname"><a href="../../db/d74/structrb__vm__struct.html#a0fabbe8c44aac34d9538388955e2b461">rb_vm_struct::progname</a></div><div class="ttdeci">VALUE progname</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00316">vm_core.h:316</a></div></div>
<div class="ttc" id="debug_8h_html_a1baecad7f27ccf1689612054ecf6a397"><div class="ttname"><a href="../../db/d16/debug_8h.html#a1baecad7f27ccf1689612054ecf6a397">bp</a></div><div class="ttdeci">#define bp()</div><div class="ttdef"><b>Definition:</b> <a href="../../db/d16/debug_8h_source.html#l00027">debug.h:27</a></div></div>
<div class="ttc" id="vm__dump_8c_html_aaefbe89c8af3d369bde339711a6e8668"><div class="ttname"><a href="../../dd/dd7/vm__dump_8c.html#aaefbe89c8af3d369bde339711a6e8668">rb_vmdebug_stack_dump_th</a></div><div class="ttdeci">void rb_vmdebug_stack_dump_th(VALUE thval)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/dd7/vm__dump_8c_source.html#l00233">vm_dump.c:233</a></div></div>
<div class="ttc" id="vm__dump_8c_html_a8537bba92a6b0ad9700c765c83969b57"><div class="ttname"><a href="../../dd/dd7/vm__dump_8c.html#a8537bba92a6b0ad9700c765c83969b57">MAX_POSBUF</a></div><div class="ttdeci">#define MAX_POSBUF</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/dd7/vm__dump_8c_source.html#l00016">vm_dump.c:16</a></div></div>
<div class="ttc" id="vm__core_8h_html_ab913ccb5c8b4c3065335169b15925411"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#ab913ccb5c8b4c3065335169b15925411">SDR2</a></div><div class="ttdeci">#define SDR2(cfp)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00635">vm_core.h:635</a></div></div>
<div class="ttc" id="structrb__control__frame__t_html_a29b331b150e5cae1e206cd87f892bad8"><div class="ttname"><a href="../../dd/d84/structrb__control__frame__t.html#a29b331b150e5cae1e206cd87f892bad8">rb_control_frame_t::sp</a></div><div class="ttdeci">VALUE * sp</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00334">vm_core.h:334</a></div></div>
<div class="ttc" id="structrb__block__struct_html_ad54e1ec45ab21ef384fe9e4346570397"><div class="ttname"><a href="../../da/dc0/structrb__block__struct.html#ad54e1ec45ab21ef384fe9e4346570397">rb_block_struct::self</a></div><div class="ttdeci">VALUE self</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00347">vm_core.h:347</a></div></div>
<div class="ttc" id="generator_8h_html_aa0c7097c0d82c8372072fbab5a604e39"><div class="ttname"><a href="../../d8/df4/generator_8h.html#aa0c7097c0d82c8372072fbab5a604e39">RSTRING_PTR</a></div><div class="ttdeci">#define RSTRING_PTR(string)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/df4/generator_8h_source.html#l00042">generator.h:42</a></div></div>
<div class="ttc" id="ruby_2ruby_8h_html_aa1bf33f94a5de592de48c16fcfe86db2"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#aa1bf33f94a5de592de48c16fcfe86db2">PRIxVALUE</a></div><div class="ttdeci">#define PRIxVALUE</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00130">ruby.h:130</a></div></div>
<div class="ttc" id="vm__core_8h_html_abc8be29d36c6252fce6bc61621f81b71"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#abc8be29d36c6252fce6bc61621f81b71">VM_FRAME_MAGIC_METHOD</a></div><div class="ttdeci">#define VM_FRAME_MAGIC_METHOD</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00572">vm_core.h:572</a></div></div>
<div class="ttc" id="vm__core_8h_html_a423bad734fe427f4d5deeb4fe71fff65"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a423bad734fe427f4d5deeb4fe71fff65">VM_FRAME_TYPE</a></div><div class="ttdeci">#define VM_FRAME_TYPE(cfp)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00585">vm_core.h:585</a></div></div>
<div class="ttc" id="vm__core_8h_html_a795522d157a66fe8f0cdd335b28099c9"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a795522d157a66fe8f0cdd335b28099c9">VM_FRAME_MAGIC_IFUNC</a></div><div class="ttdeci">#define VM_FRAME_MAGIC_IFUNC</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00579">vm_core.h:579</a></div></div>
<div class="ttc" id="generator_8h_html_ae988773ed219452578f881fc7189c486"><div class="ttname"><a href="../../d8/df4/generator_8h.html#ae988773ed219452578f881fc7189c486">RARRAY_LEN</a></div><div class="ttdeci">#define RARRAY_LEN(ARRAY)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/df4/generator_8h_source.html#l00039">generator.h:39</a></div></div>
<div class="ttc" id="vm__core_8h_html_ac33c371d81972685538097cb4f49181f"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#ac33c371d81972685538097cb4f49181f">SDR</a></div><div class="ttdeci">#define SDR()</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00634">vm_core.h:634</a></div></div>
<div class="ttc" id="vm__core_8h_html_aaa39b3177aba775195d515b937ef78ff"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#aaa39b3177aba775195d515b937ef78ff">GetEnvPtr</a></div><div class="ttdeci">#define GetEnvPtr(obj, ptr)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00536">vm_core.h:536</a></div></div>
<div class="ttc" id="vm_8c_html_a70289cbb34babceed6243d9471e70e5f"><div class="ttname"><a href="../../de/de9/vm_8c.html#a70289cbb34babceed6243d9471e70e5f">rb_vm_get_sourceline</a></div><div class="ttdeci">RUBY_FUNC_EXPORTED int rb_vm_get_sourceline(const rb_control_frame_t *cfp)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00769">vm.c:769</a></div></div>
<div class="ttc" id="structrb__thread__struct_html"><div class="ttname"><a href="../../d2/d66/structrb__thread__struct.html">rb_thread_struct</a></div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00393">vm_core.h:393</a></div></div>
<div class="ttc" id="vm__dump_8c_html_a00c5c84d7769a956e3651998e92ae823"><div class="ttname"><a href="../../dd/dd7/vm__dump_8c.html#a00c5c84d7769a956e3651998e92ae823">rb_vmdebug_env_dump_raw</a></div><div class="ttdeci">void rb_vmdebug_env_dump_raw(rb_env_t *env, VALUE *lfp, VALUE *dfp)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/dd7/vm__dump_8c_source.html#l00191">vm_dump.c:191</a></div></div>
<div class="ttc" id="cparse_8c_html_a48bfb6519a45249fb2ec0193ea3b6e1c"><div class="ttname"><a href="../../dc/d0c/cparse_8c.html#a48bfb6519a45249fb2ec0193ea3b6e1c">ID2SYM</a></div><div class="ttdeci">#define ID2SYM(i)</div><div class="ttdef"><b>Definition:</b> <a href="../../dc/d0c/cparse_8c_source.html#l00063">cparse.c:63</a></div></div>
<div class="ttc" id="structrb__control__frame__t_html_aa0ec76f80ebaf0668b688c4e4e5e3e3f"><div class="ttname"><a href="../../dd/d84/structrb__control__frame__t.html#aa0ec76f80ebaf0668b688c4e4e5e3e3f">rb_control_frame_t::me</a></div><div class="ttdeci">const rb_method_entry_t * me</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00343">vm_core.h:343</a></div></div>
<div class="ttc" id="structrb__method__definition__struct_html_a7fc0edb8505a61f8ae8bf2544fa7f676"><div class="ttname"><a href="../../d6/dab/structrb__method__definition__struct.html#a7fc0edb8505a61f8ae8bf2544fa7f676">rb_method_definition_struct::original_id</a></div><div class="ttdeci">ID original_id</div><div class="ttdef"><b>Definition:</b> <a href="../../db/d0a/method_8h_source.html#l00061">method.h:61</a></div></div>
<div class="ttc" id="structrb__proc__t_html_acdb9a8c85422bf299615f7942ffbc916"><div class="ttname"><a href="../../d5/d77/structrb__proc__t.html#acdb9a8c85422bf299615f7942ffbc916">rb_proc_t::envval</a></div><div class="ttdeci">VALUE envval</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00529">vm_core.h:529</a></div></div>
<div class="ttc" id="vm__core_8h_html_a8deb84ec6023e3229db88ac2c9da6138"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a8deb84ec6023e3229db88ac2c9da6138">GET_THREAD</a></div><div class="ttdeci">#define GET_THREAD()</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00690">vm_core.h:690</a></div></div>
<div class="ttc" id="struct____s_f_i_l_e_html"><div class="ttname"><a href="../../db/ddf/struct____s_f_i_l_e.html">__sFILE</a></div><div class="ttdef"><b>Definition:</b> <a href="../../da/d50/vsnprintf_8c_source.html#l00175">vsnprintf.c:175</a></div></div>
<div class="ttc" id="win32ole_8c_html_a4b5a598a4f53b3724549c48dcfbf7c48"><div class="ttname"><a href="../../d2/d99/win32ole_8c.html#a4b5a598a4f53b3724549c48dcfbf7c48">p</a></div><div class="ttdeci">Win32OLEIDispatch * p</div><div class="ttdef"><b>Definition:</b> <a href="../../d2/d99/win32ole_8c_source.html#l00778">win32ole.c:778</a></div></div>
<div class="ttc" id="structrb__iseq__struct_html_a35596da255ce28a5d1da94c2cc508c7d"><div class="ttname"><a href="../../d6/de3/structrb__iseq__struct.html#a35596da255ce28a5d1da94c2cc508c7d">rb_iseq_struct::name</a></div><div class="ttdeci">VALUE name</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00168">vm_core.h:168</a></div></div>
<div class="ttc" id="structrb__iseq__struct_html_a8699ab44e2c44e7f8df87e26a9c7bee8"><div class="ttname"><a href="../../d6/de3/structrb__iseq__struct.html#a8699ab44e2c44e7f8df87e26a9c7bee8">rb_iseq_struct::iseq</a></div><div class="ttdeci">VALUE * iseq</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00171">vm_core.h:171</a></div></div>
<div class="ttc" id="structrb__thread__struct_html_a3fd7aab45a1c539bc9ca022acfc1ad51"><div class="ttname"><a href="../../d2/d66/structrb__thread__struct.html#a3fd7aab45a1c539bc9ca022acfc1ad51">rb_thread_struct::stack</a></div><div class="ttdeci">VALUE * stack</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00398">vm_core.h:398</a></div></div>
<div class="ttc" id="structrb__iseq__struct_html_a06859fa5de56f2ede3cb692f1d9215e2"><div class="ttname"><a href="../../d6/de3/structrb__iseq__struct.html#a06859fa5de56f2ede3cb692f1d9215e2">rb_iseq_struct::filename</a></div><div class="ttdeci">VALUE filename</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00169">vm_core.h:169</a></div></div>
<div class="ttc" id="hash_8c_html_ac477edf136d86a33bc06d1fbea67bb9a"><div class="ttname"><a href="../../d1/d04/hash_8c.html#ac477edf136d86a33bc06d1fbea67bb9a">rb_hash_aset</a></div><div class="ttdeci">VALUE rb_hash_aset(VALUE hash, VALUE key, VALUE val)</div><div class="ttdef"><b>Definition:</b> <a href="../../d1/d04/hash_8c_source.html#l01133">hash.c:1133</a></div></div>
<div class="ttc" id="structrb__control__frame__t_html_af3314cb37c8a27353101bf6f35574946"><div class="ttname"><a href="../../dd/d84/structrb__control__frame__t.html#af3314cb37c8a27353101bf6f35574946">rb_control_frame_t::lfp</a></div><div class="ttdeci">VALUE * lfp</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00339">vm_core.h:339</a></div></div>
<div class="ttc" id="win32ole_8c_html_ad3196fc77437d523ed1459e8ff809d3a"><div class="ttname"><a href="../../d2/d99/win32ole_8c.html#ad3196fc77437d523ed1459e8ff809d3a">DWORD</a></div><div class="ttdeci">IUnknown DWORD</div><div class="ttdef"><b>Definition:</b> <a href="../../d2/d99/win32ole_8c_source.html#l00149">win32ole.c:149</a></div></div>
<div class="ttc" id="structrb__iseq__struct_html_a5fd0acd110681eeb0f95c3b283451a0a"><div class="ttname"><a href="../../d6/de3/structrb__iseq__struct.html#a5fd0acd110681eeb0f95c3b283451a0a">rb_iseq_struct::argc</a></div><div class="ttdeci">int argc</div><div class="ttdoc">argument information </div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00214">vm_core.h:214</a></div></div>
<div class="ttc" id="subst_8h_html_aa367b75c5aed883fef5befbdf04835a4"><div class="ttname"><a href="../../d7/d72/subst_8h.html#aa367b75c5aed883fef5befbdf04835a4">snprintf</a></div><div class="ttdeci">#define snprintf</div><div class="ttdef"><b>Definition:</b> <a href="../../d7/d72/subst_8h_source.html#l00006">subst.h:6</a></div></div>
<div class="ttc" id="ruby_2ruby_8h_html_a4832bad8845a35fc50f7a160901854a1"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#a4832bad8845a35fc50f7a160901854a1">NIL_P</a></div><div class="ttdeci">#define NIL_P(v)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00374">ruby.h:374</a></div></div>
<div class="ttc" id="vm_8c_html_a600dc9ffdba414e21dacfe809c4a9ec8"><div class="ttname"><a href="../../de/de9/vm_8c.html#a600dc9ffdba414e21dacfe809c4a9ec8">rb_cRubyVM</a></div><div class="ttdeci">VALUE rb_cRubyVM</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de9/vm_8c_source.html#l00035">vm.c:35</a></div></div>
<div class="ttc" id="ruby_8c_html_ad1447518f4372828b8435ae82e48499e"><div class="ttname"><a href="../../df/d77/ruby_8c.html#ad1447518f4372828b8435ae82e48499e">argc</a></div><div class="ttdeci">int argc</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d77/ruby_8c_source.html#l00120">ruby.c:120</a></div></div>
<div class="ttc" id="vm__core_8h_html_a2524f590c07fceb689b2b7d53114ff5f"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a2524f590c07fceb689b2b7d53114ff5f">VM_FRAME_MAGIC_CLASS</a></div><div class="ttdeci">#define VM_FRAME_MAGIC_CLASS</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00574">vm_core.h:574</a></div></div>
<div class="ttc" id="vm__dump_8c_html_ae5165393259e08cff52a6c3d66619217"><div class="ttname"><a href="../../dd/dd7/vm__dump_8c.html#ae5165393259e08cff52a6c3d66619217">bugreport_backtrace</a></div><div class="ttdeci">static int bugreport_backtrace(void *arg, VALUE file, int line, VALUE method)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/dd7/vm__dump_8c_source.html#l00571">vm_dump.c:571</a></div></div>
<div class="ttc" id="vm__dump_8c_html_af1b67bbf4b72295a772178d0bd939dd0"><div class="ttname"><a href="../../dd/dd7/vm__dump_8c.html#af1b67bbf4b72295a772178d0bd939dd0">rb_vm_bugreport</a></div><div class="ttdeci">void rb_vm_bugreport(void)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/dd7/vm__dump_8c_source.html#l00770">vm_dump.c:770</a></div></div>
<div class="ttc" id="ruby_2ruby_8h_html_a5f1cc49c4da51d5bdffa64be79ff6fb0"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#a5f1cc49c4da51d5bdffa64be79ff6fb0">T_NODE</a></div><div class="ttdeci">#define T_NODE</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00434">ruby.h:434</a></div></div>
<div class="ttc" id="ruby_2ruby_8h_html_aca444ec27cdd86e8456e34dfc4aed830"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#aca444ec27cdd86e8456e34dfc4aed830">PRIdPTRDIFF</a></div><div class="ttdeci">#define PRIdPTRDIFF</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00155">ruby.h:155</a></div></div>
<div class="ttc" id="vm__dump_8c_html_a066f88891bb609fc5d137b4347038f40"><div class="ttname"><a href="../../dd/dd7/vm__dump_8c.html#a066f88891bb609fc5d137b4347038f40">rb_vmdebug_debug_print_register</a></div><div class="ttdeci">void rb_vmdebug_debug_print_register(rb_thread_t *th)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/dd7/vm__dump_8c_source.html#l00330">vm_dump.c:330</a></div></div>
<div class="ttc" id="intern_8h_html_a17a81c1a7d754e5ab49fc4b4369b6c8c"><div class="ttname"><a href="../../db/d2e/intern_8h.html#a17a81c1a7d754e5ab49fc4b4369b6c8c">rb_const_get</a></div><div class="ttdeci">VALUE rb_const_get(VALUE, ID)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/d2a/variable_8c_source.html#l01635">variable.c:1635</a></div></div>
<div class="ttc" id="structrb__block__struct_html_a834e1c9b35a06714deeb62097636564f"><div class="ttname"><a href="../../da/dc0/structrb__block__struct.html#a834e1c9b35a06714deeb62097636564f">rb_block_struct::lfp</a></div><div class="ttdeci">VALUE * lfp</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00348">vm_core.h:348</a></div></div>
<div class="ttc" id="structiseq__inline__cache__entry_html_afe485ee1e6c1127a5512d3ec8c43d6a6"><div class="ttname"><a href="../../d7/d2a/structiseq__inline__cache__entry.html#afe485ee1e6c1127a5512d3ec8c43d6a6">iseq_inline_cache_entry::method</a></div><div class="ttdeci">rb_method_entry_t * method</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00133">vm_core.h:133</a></div></div>
<div class="ttc" id="nkf_8h_html_aa8cecfc5c5c054d2875c03e77b7be15d"><div class="ttname"><a href="../../d1/d5c/nkf_8h.html#aa8cecfc5c5c054d2875c03e77b7be15d">TRUE</a></div><div class="ttdeci">#define TRUE</div><div class="ttdef"><b>Definition:</b> <a href="../../d1/d5c/nkf_8h_source.html#l00186">nkf.h:186</a></div></div>
<div class="ttc" id="structrb__proc__t_html"><div class="ttname"><a href="../../d5/d77/structrb__proc__t.html">rb_proc_t</a></div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00526">vm_core.h:526</a></div></div>
<div class="ttc" id="vm_8c_html_a70b2fd040eae21f04d68a7a6f7ee1a05"><div class="ttname"><a href="../../de/de9/vm_8c.html#a70b2fd040eae21f04d68a7a6f7ee1a05">vm_analysis_operand</a></div><div class="ttdeci">void vm_analysis_operand(int insn, int n, VALUE op)</div></div>
<div class="ttc" id="structrb__vm__struct_html_adc9a2f20cba11e9a872bbe603b7db593"><div class="ttname"><a href="../../db/d74/structrb__vm__struct.html#adc9a2f20cba11e9a872bbe603b7db593">rb_vm_struct::loaded_features</a></div><div class="ttdeci">VALUE loaded_features</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00302">vm_core.h:302</a></div></div>
<div class="ttc" id="vm__dump_8c_html_a1dbfe98ae709e8806918bdd3121bf986"><div class="ttname"><a href="../../dd/dd7/vm__dump_8c.html#a1dbfe98ae709e8806918bdd3121bf986">rb_vmdebug_stack_dump_raw</a></div><div class="ttdeci">void rb_vmdebug_stack_dump_raw(rb_thread_t *th, rb_control_frame_t *cfp)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/dd7/vm__dump_8c_source.html#l00146">vm_dump.c:146</a></div></div>
<div class="ttc" id="hash_8c_html_af1da586524a3a1739fd5b91272037815"><div class="ttname"><a href="../../d1/d04/hash_8c.html#af1da586524a3a1739fd5b91272037815">rb_hash_new</a></div><div class="ttdeci">VALUE rb_hash_new(void)</div><div class="ttdef"><b>Definition:</b> <a href="../../d1/d04/hash_8c_source.html#l00229">hash.c:229</a></div></div>
<div class="ttc" id="nkf-utf8_2nkf_8c_html_ac37f17a60c8b5533aac4840c681f62b8"><div class="ttname"><a href="../../d6/da0/nkf-utf8_2nkf_8c.html#ac37f17a60c8b5533aac4840c681f62b8">buf</a></div><div class="ttdeci">unsigned char buf[MIME_BUF_SIZE]</div><div class="ttdef"><b>Definition:</b> <a href="../../d6/da0/nkf-utf8_2nkf_8c_source.html#l03913">nkf.c:3913</a></div></div>
<div class="ttc" id="ruby_2ruby_8h_html_afa5b9137f051ac26d7ccc8824f178233"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#afa5b9137f051ac26d7ccc8824f178233">ID</a></div><div class="ttdeci">unsigned long ID</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00089">ruby.h:89</a></div></div>
<div class="ttc" id="vm__core_8h_html_ae154762699bf1f722bdf05c22026d678"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#ae154762699bf1f722bdf05c22026d678">RUBYVM_CFUNC_FRAME_P</a></div><div class="ttdeci">#define RUBYVM_CFUNC_FRAME_P(cfp)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00590">vm_core.h:590</a></div></div>
<div class="ttc" id="ruby_2ruby_8h_html_aba03c3c4ff187bbda6c4459e2dc9f6c6"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a></div><div class="ttdeci">#define Qnil</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00367">ruby.h:367</a></div></div>
<div class="ttc" id="win32_8h_html_a728e973c799f206f0151c8a3bd1e5699"><div class="ttname"><a href="../../dc/db1/win32_8h.html#a728e973c799f206f0151c8a3bd1e5699">uintptr_t</a></div><div class="ttdeci">unsigned int uintptr_t</div><div class="ttdef"><b>Definition:</b> <a href="../../dc/db1/win32_8h_source.html#l00096">win32.h:96</a></div></div>
<div class="ttc" id="vm__core_8h_html"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html">vm_core.h</a></div></div>
<div class="ttc" id="vm__core_8h_html_ac7b8d797cce488d08572c273f49f28fe"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#ac7b8d797cce488d08572c273f49f28fe">VM_FRAME_MAGIC_EVAL</a></div><div class="ttdeci">#define VM_FRAME_MAGIC_EVAL</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00580">vm_core.h:580</a></div></div>
<div class="ttc" id="structrb__iseq__struct_html_aa70f3e195a4350acbbc130f8a95c9958"><div class="ttname"><a href="../../d6/de3/structrb__iseq__struct.html#aa70f3e195a4350acbbc130f8a95c9958">rb_iseq_struct::iseq_encoded</a></div><div class="ttdeci">VALUE * iseq_encoded</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00172">vm_core.h:172</a></div></div>
<div class="ttc" id="ruby_2ruby_8h_html_aee74f540353cd2d77d1cb37a3714bd7d"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#aee74f540353cd2d77d1cb37a3714bd7d">BUILTIN_TYPE</a></div><div class="ttdeci">#define BUILTIN_TYPE(x)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00438">ruby.h:438</a></div></div>
<div class="ttc" id="ruby_2ruby_8h_html_a3c1d4bfc6a81af60bdcb48744c35f760"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="ttdeci">unsigned long VALUE</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00088">ruby.h:88</a></div></div>
<div class="ttc" id="ruby_2ruby_8h_html_a9444c431b3cb1184e7523fc572f2c758"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#a9444c431b3cb1184e7523fc572f2c758">FIX2INT</a></div><div class="ttdeci">#define FIX2INT(x)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00538">ruby.h:538</a></div></div>
<div class="ttc" id="name2ctype_8h_html_aed1cc4dca5d94cb452f79691f54f7423"><div class="ttname"><a href="../../d3/d15/name2ctype_8h.html#aed1cc4dca5d94cb452f79691f54f7423">len</a></div><div class="ttdeci">register unsigned int len</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d15/name2ctype_8h_source.html#l22210">name2ctype.h:22210</a></div></div>
<div class="ttc" id="generator_8h_html_abb794fe2d7c73eea87e7ba2273939a8e"><div class="ttname"><a href="../../d8/df4/generator_8h.html#abb794fe2d7c73eea87e7ba2273939a8e">RARRAY_PTR</a></div><div class="ttdeci">#define RARRAY_PTR(ARRAY)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/df4/generator_8h_source.html#l00036">generator.h:36</a></div></div>
<div class="ttc" id="vm__opts_8h_html_ae1ded4471910adbc5bbe8e6566469341"><div class="ttname"><a href="../../dc/d92/vm__opts_8h.html#ae1ded4471910adbc5bbe8e6566469341">OPT_STACK_CACHING</a></div><div class="ttdeci">#define OPT_STACK_CACHING</div><div class="ttdef"><b>Definition:</b> <a href="../../dc/d92/vm__opts_8h_source.html#l00046">vm_opts.h:46</a></div></div>
<div class="ttc" id="structrb__control__frame__t_html_a8e19fd7af779b623f1e9477f271358e6"><div class="ttname"><a href="../../dd/d84/structrb__control__frame__t.html#a8e19fd7af779b623f1e9477f271358e6">rb_control_frame_t::bp</a></div><div class="ttdeci">VALUE * bp</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00335">vm_core.h:335</a></div></div>
<div class="ttc" id="structrb__control__frame__t_html_ac1cafd093e114d3ec99ebeca0ffeb048"><div class="ttname"><a href="../../dd/d84/structrb__control__frame__t.html#ac1cafd093e114d3ec99ebeca0ffeb048">rb_control_frame_t::dfp</a></div><div class="ttdeci">VALUE * dfp</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00340">vm_core.h:340</a></div></div>
<div class="ttc" id="structrb__control__frame__t_html_a28b0b301811a891225ba9a58c412482d"><div class="ttname"><a href="../../dd/d84/structrb__control__frame__t.html#a28b0b301811a891225ba9a58c412482d">rb_control_frame_t::pc</a></div><div class="ttdeci">VALUE * pc</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00333">vm_core.h:333</a></div></div>
<div class="ttc" id="ruby_2ruby_8h_html_afc32c1526ac6cb40ec33cad8782c0bae"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#afc32c1526ac6cb40ec33cad8782c0bae">StringValueCStr</a></div><div class="ttdeci">#define StringValueCStr(v)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00468">ruby.h:468</a></div></div>
<div class="ttc" id="vm__core_8h_html_ac9390ef02c17a0bc7e3bd359264562c7"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#ac9390ef02c17a0bc7e3bd359264562c7">VM_FRAME_MAGIC_TOP</a></div><div class="ttdeci">#define VM_FRAME_MAGIC_TOP</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00575">vm_core.h:575</a></div></div>
<div class="ttc" id="vm__core_8h_html_ac1f5b7efa57bccbeb4ff5e7ae6ff18c2"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#ac1f5b7efa57bccbeb4ff5e7ae6ff18c2">VM_FRAME_MAGIC_PROC</a></div><div class="ttdeci">#define VM_FRAME_MAGIC_PROC</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00578">vm_core.h:578</a></div></div>
<div class="ttc" id="vm__core_8h_html_a53d4377e7685dd916255009372937561"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a53d4377e7685dd916255009372937561">rb_backtrace_each</a></div><div class="ttdeci">int rb_backtrace_each(rb_backtrace_iter_func *iter, void *arg)</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d80/vm__eval_8c_source.html#l01682">vm_eval.c:1682</a></div></div>
<div class="ttc" id="iseq_8c_html_af94502bbd024003d18377cfb27b2045f"><div class="ttname"><a href="../../dd/d74/iseq_8c.html#af94502bbd024003d18377cfb27b2045f">insn_operand_intern</a></div><div class="ttdeci">static VALUE insn_operand_intern(rb_iseq_t *iseq, VALUE insn, int op_no, VALUE op, int len, size_t pos, VALUE *pnop, VALUE child)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d74/iseq_8c_source.html#l00743">iseq.c:743</a></div></div>
<div class="ttc" id="vm__core_8h_html_a57840803108748406429fb1cb3b10530"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a57840803108748406429fb1cb3b10530">VM_FRAME_MAGIC_LAMBDA</a></div><div class="ttdeci">#define VM_FRAME_MAGIC_LAMBDA</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00581">vm_core.h:581</a></div></div>
<div class="ttc" id="ruby_2ruby_8h_html_ac55fae7f748afd3fc2533d0d7d06cf5a"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#ac55fae7f748afd3fc2533d0d7d06cf5a">INT2FIX</a></div><div class="ttdeci">#define INT2FIX(i)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00225">ruby.h:225</a></div></div>
<div class="ttc" id="structrb__proc__t_html_acf80b0e350012548c28cba1ea64a7a6e"><div class="ttname"><a href="../../d5/d77/structrb__proc__t.html#acf80b0e350012548c28cba1ea64a7a6e">rb_proc_t::block</a></div><div class="ttdeci">rb_block_t block</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00527">vm_core.h:527</a></div></div>
<div class="ttc" id="nkf-utf8_2nkf_8c_html_a064e4a3a0f3f97b34dc187ea21bcc2f1"><div class="ttname"><a href="../../d6/da0/nkf-utf8_2nkf_8c.html#a064e4a3a0f3f97b34dc187ea21bcc2f1">cv</a></div><div class="ttdeci">static const unsigned char cv[]</div><div class="ttdef"><b>Definition:</b> <a href="../../d6/da0/nkf-utf8_2nkf_8c_source.html#l00561">nkf.c:561</a></div></div>
<div class="ttc" id="structrb__method__entry__struct_html_a6c868c50e67b757c6324dfef0f3184dc"><div class="ttname"><a href="../../d7/db7/structrb__method__entry__struct.html#a6c868c50e67b757c6324dfef0f3184dc">rb_method_entry_struct::def</a></div><div class="ttdeci">rb_method_definition_t * def</div><div class="ttdef"><b>Definition:</b> <a href="../../db/d0a/method_8h_source.html#l00078">method.h:78</a></div></div>
<div class="ttc" id="hash_8c_html_ab7063832c7ed02351e87922a78e35c32"><div class="ttname"><a href="../../d1/d04/hash_8c.html#ab7063832c7ed02351e87922a78e35c32">rb_hash_aref</a></div><div class="ttdeci">VALUE rb_hash_aref(VALUE hash, VALUE key)</div><div class="ttdef"><b>Definition:</b> <a href="../../d1/d04/hash_8c_source.html#l00518">hash.c:518</a></div></div>
<div class="ttc" id="structrb__control__frame__t_html_a4c11a50358317e1207affd6d7b4ad576"><div class="ttname"><a href="../../dd/d84/structrb__control__frame__t.html#a4c11a50358317e1207affd6d7b4ad576">rb_control_frame_t::self</a></div><div class="ttdeci">VALUE self</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00338">vm_core.h:338</a></div></div>
<div class="ttc" id="vm__dump_8c_html_a2dcc677a7d7e5b4bebbbcf6afe5955fd"><div class="ttname"><a href="../../dd/dd7/vm__dump_8c.html#a2dcc677a7d7e5b4bebbbcf6afe5955fd">rb_vmdebug_thread_dump_regs</a></div><div class="ttdeci">void rb_vmdebug_thread_dump_regs(VALUE thval)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/dd7/vm__dump_8c_source.html#l00353">vm_dump.c:353</a></div></div>
<div class="ttc" id="structrb__iseq__struct_html_afbae994355f91f3ea547570debb757c0"><div class="ttname"><a href="../../d6/de3/structrb__iseq__struct.html#afbae994355f91f3ea547570debb757c0">rb_iseq_struct::local_size</a></div><div class="ttdeci">int local_size</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00186">vm_core.h:186</a></div></div>
<div class="ttc" id="structrb__block__struct_html_ac3696ee534a836d6ccc55cdeb2181ac5"><div class="ttname"><a href="../../da/dc0/structrb__block__struct.html#ac3696ee534a836d6ccc55cdeb2181ac5">rb_block_struct::dfp</a></div><div class="ttdeci">VALUE * dfp</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00349">vm_core.h:349</a></div></div>
<div class="ttc" id="structrb__control__frame__t_html_a4b25ca925a9f60481173632b9c09d4e0"><div class="ttname"><a href="../../dd/d84/structrb__control__frame__t.html#a4b25ca925a9f60481173632b9c09d4e0">rb_control_frame_t::iseq</a></div><div class="ttdeci">rb_iseq_t * iseq</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00336">vm_core.h:336</a></div></div>
<div class="ttc" id="vm__core_8h_html_a36e942386b2b43383c44e769bffe5808"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a36e942386b2b43383c44e769bffe5808">GetThreadPtr</a></div><div class="ttdeci">#define GetThreadPtr(obj, ptr)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00356">vm_core.h:356</a></div></div>
<div class="ttc" id="vm__dump_8c_html_ab3e8c769e0c63ba229bd1b6338639512"><div class="ttname"><a href="../../dd/dd7/vm__dump_8c.html#ab3e8c769e0c63ba229bd1b6338639512">rb_vmdebug_proc_dump_raw</a></div><div class="ttdeci">void rb_vmdebug_proc_dump_raw(rb_proc_t *proc)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/dd7/vm__dump_8c_source.html#l00219">vm_dump.c:219</a></div></div>
<div class="ttc" id="vm_8c_html_aadc79f2891643166c13ed45e187396f2"><div class="ttname"><a href="../../de/de9/vm_8c.html#aadc79f2891643166c13ed45e187396f2">vm_analysis_insn</a></div><div class="ttdeci">void vm_analysis_insn(int insn)</div></div>
<div class="ttc" id="nkf-utf8_2nkf_8c_html_a8f8f80d37794cde9472343e4487ba3eb"><div class="ttname"><a href="../../d6/da0/nkf-utf8_2nkf_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a></div><div class="ttdeci">const char * name</div><div class="ttdef"><b>Definition:</b> <a href="../../d6/da0/nkf-utf8_2nkf_8c_source.html#l00208">nkf.c:208</a></div></div>
<div class="ttc" id="structrb__vm__struct_html"><div class="ttname"><a href="../../db/d74/structrb__vm__struct.html">rb_vm_struct</a></div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00277">vm_core.h:277</a></div></div>
<div class="ttc" id="vm__dump_8c_html_a130d5c43a9da83c86a471cb88c28f080"><div class="ttname"><a href="../../dd/dd7/vm__dump_8c.html#a130d5c43a9da83c86a471cb88c28f080">rb_vmdebug_stack_dump_raw_current</a></div><div class="ttdeci">void rb_vmdebug_stack_dump_raw_current(void)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/dd7/vm__dump_8c_source.html#l00184">vm_dump.c:184</a></div></div>
<div class="ttc" id="structrb__iseq__struct_html"><div class="ttname"><a href="../../d6/de3/structrb__iseq__struct.html">rb_iseq_struct</a></div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00151">vm_core.h:151</a></div></div>
<div class="ttc" id="ripper_8c_html_a877bc58c495643fcf49dc64c44631e72"><div class="ttname"><a href="../../d5/d11/ripper_8c.html#a877bc58c495643fcf49dc64c44631e72">rb_id2name</a></div><div class="ttdeci">const char * rb_id2name(ID id)</div><div class="ttdef"><b>Definition:</b> <a href="../../d5/d11/ripper_8c_source.html#l16362">ripper.c:16362</a></div></div>
<div class="ttc" id="intern_8h_html_acbb281bacf6b80f460143348e26142e9"><div class="ttname"><a href="../../db/d2e/intern_8h.html#acbb281bacf6b80f460143348e26142e9">rb_inspect</a></div><div class="ttdeci">VALUE rb_inspect(VALUE)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/de1/object_8c_source.html#l00372">object.c:372</a></div></div>
<div class="ttc" id="vm__core_8h_html_a885c6468caef6c3de80b0ad6c50ae38d"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a885c6468caef6c3de80b0ad6c50ae38d">VM_FRAME_MAGIC_FINISH</a></div><div class="ttdeci">#define VM_FRAME_MAGIC_FINISH</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00576">vm_core.h:576</a></div></div>
<div class="ttc" id="vm__core_8h_html_a373f1cafd944ff9e99986582d0fd695b"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a373f1cafd944ff9e99986582d0fd695b">GC_GUARDED_PTR_REF</a></div><div class="ttdeci">#define GC_GUARDED_PTR_REF(p)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00608">vm_core.h:608</a></div></div>
<div class="ttc" id="ruby_2ruby_8h_html_aa50b9d5bc665eb5545f6857c89232161"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#aa50b9d5bc665eb5545f6857c89232161">CONST_ID</a></div><div class="ttdeci">#define CONST_ID(var, str)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l01127">ruby.h:1127</a></div></div>
<div class="ttc" id="structrb__thread__struct_html_a1587dec1a575fb9f8d6a689ef4fdb6b5"><div class="ttname"><a href="../../d2/d66/structrb__thread__struct.html#a1587dec1a575fb9f8d6a689ef4fdb6b5">rb_thread_struct::stack_size</a></div><div class="ttdeci">unsigned long stack_size</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00399">vm_core.h:399</a></div></div>
<div class="ttc" id="addr2line_8h_html"><div class="ttname"><a href="../../d6/df3/addr2line_8h.html">addr2line.h</a></div></div>
<div class="ttc" id="array_8c_html_a9cfa42d4b79c89d68c53be8b2150a503"><div class="ttname"><a href="../../dc/dcc/array_8c.html#a9cfa42d4b79c89d68c53be8b2150a503">rb_intern</a></div><div class="ttdeci">#define rb_intern(str)</div></div>
<div class="ttc" id="vsnprintf_8c_html_ac752882e678e3368676e57e5eb4b9d86"><div class="ttname"><a href="../../da/d50/vsnprintf_8c.html#ac752882e678e3368676e57e5eb4b9d86">feof</a></div><div class="ttdeci">#define feof(p)</div><div class="ttdef"><b>Definition:</b> <a href="../../da/d50/vsnprintf_8c_source.html#l00217">vsnprintf.c:217</a></div></div>
<div class="ttc" id="win32_8c_html_af973ca20f6594ad664c03daa83867128"><div class="ttname"><a href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a></div><div class="ttdeci">#define env</div></div>
<div class="ttc" id="ruby_2ruby_8h_html_ae6db36a50ae612535a9aac7ad0ec5a0d"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#ae6db36a50ae612535a9aac7ad0ec5a0d">PRIxPTRDIFF</a></div><div class="ttdeci">#define PRIxPTRDIFF</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00159">ruby.h:159</a></div></div>
<div class="ttc" id="__sdbm_8c_html_a070d2ce7b6bb7e5c05602aa8c308d0c4"><div class="ttname"><a href="../../d4/db0/__sdbm_8c.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a></div><div class="ttdeci">#define NULL</div><div class="ttdef"><b>Definition:</b> <a href="../../d4/db0/__sdbm_8c_source.html#l00107">_sdbm.c:107</a></div></div>
<div class="ttc" id="ruby_2ruby_8h_html_a2edf6990280eb2637623ccd421dee4f0"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#a2edf6990280eb2637623ccd421dee4f0">Qundef</a></div><div class="ttdeci">#define Qundef</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00368">ruby.h:368</a></div></div>
<div class="ttc" id="win32ole_8c_html_a516d92a41f815ad3c448380a9aa3e4d0"><div class="ttname"><a href="../../d2/d99/win32ole_8c.html#a516d92a41f815ad3c448380a9aa3e4d0">ULONG</a></div><div class="ttdeci">static ULONG(STDMETHODCALLTYPE AddRef)(IDispatch __RPC_FAR *This)</div><div class="ttdef"><b>Definition:</b> <a href="../../d2/d99/win32ole_8c_source.html#l00606">win32ole.c:606</a></div></div>
<div class="ttc" id="intern_8h_html_ada1577ce4242b06ff5c1c52f37f5e679"><div class="ttname"><a href="../../db/d2e/intern_8h.html#ada1577ce4242b06ff5c1c52f37f5e679">rb_str_new2</a></div><div class="ttdeci">VALUE rb_str_new2(const char *)</div></div>
<div class="ttc" id="win32ole_8c_html_a18100522f0b19b5e9b9875f5737a9386"><div class="ttname"><a href="../../d2/d99/win32ole_8c.html#a18100522f0b19b5e9b9875f5737a9386">free</a></div><div class="ttdeci">free(psz)</div></div>
<div class="ttc" id="vm__dump_8c_html_ad61ad81b4e157971a62f262265a27160"><div class="ttname"><a href="../../dd/dd7/vm__dump_8c.html#ad61ad81b4e157971a62f262265a27160">rb_vmdebug_debug_print_pre</a></div><div class="ttdeci">void rb_vmdebug_debug_print_pre(rb_thread_t *th, rb_control_frame_t *cfp)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/dd7/vm__dump_8c_source.html#l00361">vm_dump.c:361</a></div></div>
<div class="ttc" id="vm__dump_8c_html_a10140e7b70a08eb48ba3befe9485ac42"><div class="ttname"><a href="../../dd/dd7/vm__dump_8c.html#a10140e7b70a08eb48ba3befe9485ac42">rb_vmdebug_debug_print_post</a></div><div class="ttdeci">void rb_vmdebug_debug_print_post(rb_thread_t *th, rb_control_frame_t *cfp)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/dd7/vm__dump_8c_source.html#l00382">vm_dump.c:382</a></div></div>
<div class="ttc" id="vm_8c_html_a22af4689a1b73006b14a25502191cde5"><div class="ttname"><a href="../../de/de9/vm_8c.html#a22af4689a1b73006b14a25502191cde5">vm_analysis_register</a></div><div class="ttdeci">void vm_analysis_register(int reg, int isset)</div></div>
<div class="ttc" id="structrb__control__frame__t_html"><div class="ttname"><a href="../../dd/d84/structrb__control__frame__t.html">rb_control_frame_t</a></div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00332">vm_core.h:332</a></div></div>
<div class="ttc" id="structrb__env__t_html"><div class="ttname"><a href="../../d0/d73/structrb__env__t.html">rb_env_t</a></div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00539">vm_core.h:539</a></div></div>
<div class="ttc" id="vm__core_8h_html_a6cfcd3997994924c8cd13c3b5c099ec6"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a6cfcd3997994924c8cd13c3b5c099ec6">GET_VM</a></div><div class="ttdeci">#define GET_VM()</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00689">vm_core.h:689</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="../../doxygen.png" alt="doxygen"/>
</a> 1.8.14
</small></address>
</body>
</html>