Linux heracles.o2switch.net 4.18.0-553.62.1.lve.el8.x86_64 #1 SMP Mon Jul 21 17:50:35 UTC 2025 x86_64
/
opt
/
alt
/
ruby21
/
share
/
doc
/
ruby
/
capi
/
html
/
dd
/
dd7
/
//opt/alt/ruby21/share/doc/ruby/capi/html/dd/dd7/vm__dump_8c_source.html
<!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  <span id="projectnumber">2.1.10p492(2016-04-01revision54464)</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&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> <span class="comment">/**********************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"></span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> vm_dump.c -</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"></span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> $Author: usa $</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"></span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> Copyright (C) 2004-2007 Koichi Sasada</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"></span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">**********************************************************************/</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> </div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> </div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include "<a class="code" href="../../de/de6/ruby_2ruby_8h.html">ruby/ruby.h</a>"</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="preprocessor">#include "<a class="code" href="../../d6/df3/addr2line_8h.html">addr2line.h</a>"</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include "<a class="code" href="../../d8/d32/vm__core_8h.html">vm_core.h</a>"</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#include "<a class="code" href="../../db/dde/internal_8h.html">internal.h</a>"</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment">/* see vm_insnhelper.h for the values */</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#ifndef VMDEBUG</span></div><div class="line"><a name="l00019"></a><span class="lineno"><a class="line" href="../../dd/dd7/vm__dump_8c.html#a5e6b7f865cae591e5e27b0e36b0d357f"> 19</a></span> <span class="preprocessor">#define VMDEBUG 0</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> </div><div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="../../dd/dd7/vm__dump_8c.html#a8537bba92a6b0ad9700c765c83969b57"> 22</a></span> <span class="preprocessor">#define MAX_POSBUF 128</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div><div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="../../dd/dd7/vm__dump_8c.html#acd3a62eaa8bfb2c0c2a59c2afa1179bb"> 24</a></span> <span class="preprocessor">#define VM_CFP_CNT(th, cfp) \</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor"> ((rb_control_frame_t *)((th)->stack + (th)->stack_size) - (rb_control_frame_t *)(cfp))</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> </div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="../../dd/dd7/vm__dump_8c.html#ac8e45243b47b9a4d73d977c62c3e6975"> 28</a></span> <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="../../de/dc6/structrb__control__frame__struct.html">rb_control_frame_t</a> *cfp)</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> {</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  ptrdiff_t pc = -1;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  ptrdiff_t ep = cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a98749000ef85777099b645d7d755275d">ep</a> - th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a3fd7aab45a1c539bc9ca022acfc1ad51">stack</a>;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  <span class="keywordtype">char</span> ep_in_heap = <span class="charliteral">' '</span>;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  <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="l00034"></a><span class="lineno"> 34</span>  <span class="keywordtype">int</span> line = 0;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *magic, *iseq_name = <span class="stringliteral">"-"</span>, *selfstr = <span class="stringliteral">"-"</span>, *biseq_name = <span class="stringliteral">"-"</span>;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> tmp;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keywordflow">if</span> (cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#aa229bdd30dd8f935df8d550d7268ec1e">block_iseq</a> != 0 && <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aee74f540353cd2d77d1cb37a3714bd7d">BUILTIN_TYPE</a>(cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#aa229bdd30dd8f935df8d550d7268ec1e">block_iseq</a>) != <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a5f1cc49c4da51d5bdffa64be79ff6fb0">T_NODE</a>) {</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  biseq_name = <span class="stringliteral">""</span>; <span class="comment">/* RSTRING(cfp->block_iseq->location.label)->ptr; */</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  }</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keywordflow">if</span> (ep < 0 || (<span class="keywordtype">size_t</span>)ep > th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a1f263d7b7ee19fc82ea14d83ed1dc7bd">stack_size</a>) {</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  ep = (ptrdiff_t)cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a98749000ef85777099b645d7d755275d">ep</a>;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  ep_in_heap = <span class="charliteral">'p'</span>;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  }</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <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="l00049"></a><span class="lineno"> 49</span>  <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="l00050"></a><span class="lineno"> 50</span>  magic = <span class="stringliteral">"TOP"</span>;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <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="l00053"></a><span class="lineno"> 53</span>  magic = <span class="stringliteral">"METHOD"</span>;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <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="l00056"></a><span class="lineno"> 56</span>  magic = <span class="stringliteral">"CLASS"</span>;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <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="l00059"></a><span class="lineno"> 59</span>  magic = <span class="stringliteral">"BLOCK"</span>;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <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="l00062"></a><span class="lineno"> 62</span>  magic = <span class="stringliteral">"CFUNC"</span>;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <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="l00065"></a><span class="lineno"> 65</span>  magic = <span class="stringliteral">"PROC"</span>;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <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="l00068"></a><span class="lineno"> 68</span>  magic = <span class="stringliteral">"LAMBDA"</span>;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <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="l00071"></a><span class="lineno"> 71</span>  magic = <span class="stringliteral">"IFUNC"</span>;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <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="l00074"></a><span class="lineno"> 74</span>  magic = <span class="stringliteral">"EVAL"</span>;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keywordflow">case</span> <a class="code" href="../../d8/d32/vm__core_8h.html#a9759f4581d8755c37d9a88a1da185566">VM_FRAME_MAGIC_RESCUE</a>:</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  magic = <span class="stringliteral">"RESCUE"</span>;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keywordflow">case</span> 0:</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  magic = <span class="stringliteral">"------"</span>;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keywordflow">default</span>:</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  magic = <span class="stringliteral">"(none)"</span>;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  }</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordflow">if</span> (0) {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  tmp = <a class="code" href="../../db/d2e/intern_8h.html#acbb281bacf6b80f460143348e26142e9">rb_inspect</a>(cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#aba6bb1166e207f96d81c4fcac16b3119">self</a>);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  selfstr = <a class="code" href="../../de/de6/ruby_2ruby_8h.html#afc32c1526ac6cb40ec33cad8782c0bae">StringValueCStr</a>(tmp);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  }</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  selfstr = <span class="stringliteral">""</span>;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  }</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keywordflow">if</span> (cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">iseq</a> != 0) {</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d8/d32/vm__core_8h.html#aa933aeb7a703c7cc2d136492acbbef22">RUBY_VM_IFUNC_P</a>(cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">iseq</a>)) {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  iseq_name = <span class="stringliteral">"<ifunc>"</span>;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  pc = cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a596de17ddc9fb186769848a9f27f3510">pc</a> - cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">iseq</a>-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#aa70f3e195a4350acbbc130f8a95c9958">iseq_encoded</a>;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  iseq_name = <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3f0e4e2b6d073369cc1c2ddde00b13bb">RSTRING_PTR</a>(cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">iseq</a>-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#acf13c2a9990e88276a7223a4881302d6">location</a>.<a class="code" href="../../dd/dc8/structrb__iseq__location__struct.html#a203f0f52988314c40d65dd137f50fcdd">label</a>);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  line = <a class="code" href="../../d8/d73/vm__backtrace_8c.html#a70289cbb34babceed6243d9471e70e5f">rb_vm_get_sourceline</a>(cfp);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keywordflow">if</span> (line) {</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <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">"%s:%d"</span>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3f0e4e2b6d073369cc1c2ddde00b13bb">RSTRING_PTR</a>(cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">iseq</a>-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#acf13c2a9990e88276a7223a4881302d6">location</a>.<a class="code" href="../../dd/dc8/structrb__iseq__location__struct.html#a155c8f31e825f44e7fa41601ff149357">path</a>), line);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  }</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  }</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  }</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#ab8ddfbe44ad9a3582069c9fcf5211afc">me</a>) {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  iseq_name = <a class="code" href="../../d5/d11/ripper_8c.html#a877bc58c495643fcf49dc64c44631e72">rb_id2name</a>(cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#ab8ddfbe44ad9a3582069c9fcf5211afc">me</a>-><a class="code" href="../../d7/db7/structrb__method__entry__struct.html#a6c868c50e67b757c6324dfef0f3184dc">def</a>-><a class="code" href="../../d6/dab/structrb__method__definition__struct.html#a7fc0edb8505a61f8ae8bf2544fa7f676">original_id</a>);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <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">":%s"</span>, iseq_name);</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  line = -1;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  }</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  fprintf(stderr, <span class="stringliteral">"c:%04"</span><a class="code" href="../../de/de6/ruby_2ruby_8h.html#aca444ec27cdd86e8456e34dfc4aed830">PRIdPTRDIFF</a><span class="stringliteral">" "</span>,</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  ((<a class="code" href="../../de/dc6/structrb__control__frame__struct.html">rb_control_frame_t</a> *)(th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a3fd7aab45a1c539bc9ca022acfc1ad51">stack</a> + th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a1f263d7b7ee19fc82ea14d83ed1dc7bd">stack_size</a>) - cfp));</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="keywordflow">if</span> (pc == -1) {</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  fprintf(stderr, <span class="stringliteral">"p:---- "</span>);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  }</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  fprintf(stderr, <span class="stringliteral">"p:%04"</span><a class="code" href="../../de/de6/ruby_2ruby_8h.html#aca444ec27cdd86e8456e34dfc4aed830">PRIdPTRDIFF</a><span class="stringliteral">" "</span>, pc);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  }</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  fprintf(stderr, <span class="stringliteral">"s:%04"</span><a class="code" href="../../de/de6/ruby_2ruby_8h.html#aca444ec27cdd86e8456e34dfc4aed830">PRIdPTRDIFF</a><span class="stringliteral">" "</span>, cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a0e900de65ec08ba64df1125350b4071b">sp</a> - th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a3fd7aab45a1c539bc9ca022acfc1ad51">stack</a>);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  fprintf(stderr, ep_in_heap == <span class="charliteral">' '</span> ? <span class="stringliteral">"e:%06"</span><a class="code" href="../../de/de6/ruby_2ruby_8h.html#aca444ec27cdd86e8456e34dfc4aed830">PRIdPTRDIFF</a><span class="stringliteral">" "</span> : <span class="stringliteral">"E:%06"</span><a class="code" href="../../de/de6/ruby_2ruby_8h.html#ae6db36a50ae612535a9aac7ad0ec5a0d">PRIxPTRDIFF</a><span class="stringliteral">" "</span>, ep % 10000);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  fprintf(stderr, <span class="stringliteral">"%-6s"</span>, magic);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keywordflow">if</span> (line) {</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  fprintf(stderr, <span class="stringliteral">" %s"</span>, posbuf);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  }</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d8/d32/vm__core_8h.html#af2a793a1c756c8b552d8d1f897e63800">VM_FRAME_TYPE_FINISH_P</a>(cfp)) {</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  fprintf(stderr, <span class="stringliteral">" [FINISH]"</span>);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  }</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="keywordflow">if</span> (0) {</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  fprintf(stderr, <span class="stringliteral">" \t"</span>);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  fprintf(stderr, <span class="stringliteral">"iseq: %-24s "</span>, iseq_name);</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  fprintf(stderr, <span class="stringliteral">"self: %-24s "</span>, selfstr);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  fprintf(stderr, <span class="stringliteral">"%-1s "</span>, biseq_name);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  }</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  fprintf(stderr, <span class="stringliteral">"\n"</span>);</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span> }</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span> </div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="../../dd/dd7/vm__dump_8c.html#a1dbfe98ae709e8806918bdd3121bf986"> 141</a></span> <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="../../de/dc6/structrb__control__frame__struct.html">rb_control_frame_t</a> *cfp)</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span> {</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="preprocessor">#if 0</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *sp = cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a0e900de65ec08ba64df1125350b4071b">sp</a>, *ep = cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a98749000ef85777099b645d7d755275d">ep</a>;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *p, *st, *<a class="code" href="../../d8/dac/openssl_2conftest_8c.html#ad2c584e6472d5514c2fa94aea1697bb7">t</a>;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  fprintf(stderr, <span class="stringliteral">"-- stack frame ------------\n"</span>);</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="keywordflow">for</span> (p = st = th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a3fd7aab45a1c539bc9ca022acfc1ad51">stack</a>; p < sp; p++) {</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  fprintf(stderr, <span class="stringliteral">"%04ld (%p): %08"</span><a class="code" href="../../de/de6/ruby_2ruby_8h.html#aa1bf33f94a5de592de48c16fcfe86db2">PRIxVALUE</a>, (<span class="keywordtype">long</span>)(p - st), p, *p);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <a class="code" href="../../d8/dac/openssl_2conftest_8c.html#ad2c584e6472d5514c2fa94aea1697bb7">t</a> = (<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *)*p;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="keywordflow">if</span> (th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a3fd7aab45a1c539bc9ca022acfc1ad51">stack</a> <= <a class="code" href="../../d8/dac/openssl_2conftest_8c.html#ad2c584e6472d5514c2fa94aea1697bb7">t</a> && <a class="code" href="../../d8/dac/openssl_2conftest_8c.html#ad2c584e6472d5514c2fa94aea1697bb7">t</a> < sp) {</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  fprintf(stderr, <span class="stringliteral">" (= %ld)"</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>(<a class="code" href="../../d8/dac/openssl_2conftest_8c.html#ad2c584e6472d5514c2fa94aea1697bb7">t</a>) - th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a3fd7aab45a1c539bc9ca022acfc1ad51">stack</a>));</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  }</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span> </div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="keywordflow">if</span> (p == ep)</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  fprintf(stderr, <span class="stringliteral">" <- ep"</span>);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span> </div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  fprintf(stderr, <span class="stringliteral">"\n"</span>);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  }</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span> </div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  fprintf(stderr, <span class="stringliteral">"-- Control frame information "</span></div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="stringliteral">"-----------------------------------------------\n"</span>);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keywordflow">while</span> ((<span class="keywordtype">void</span> *)cfp < (<span class="keywordtype">void</span> *)(th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a3fd7aab45a1c539bc9ca022acfc1ad51">stack</a> + th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a1f263d7b7ee19fc82ea14d83ed1dc7bd">stack_size</a>)) {</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <a class="code" href="../../dd/dd7/vm__dump_8c.html#ac8e45243b47b9a4d73d977c62c3e6975">control_frame_dump</a>(th, cfp);</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  cfp++;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  }</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  fprintf(stderr, <span class="stringliteral">"\n"</span>);</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span> }</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span> </div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="../../dd/dd7/vm__dump_8c.html#a130d5c43a9da83c86a471cb88c28f080"> 173</a></span> <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="l00174"></a><span class="lineno"> 174</span> {</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <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#aec678927729c3dcca12b2fae241158b0">GET_THREAD</a>();</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <a class="code" href="../../dd/dd7/vm__dump_8c.html#a1dbfe98ae709e8806918bdd3121bf986">rb_vmdebug_stack_dump_raw</a>(th, th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>);</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span> }</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span> </div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="../../dd/dd7/vm__dump_8c.html#a410ecb917b379a91325deaea5765d7ee"> 180</a></span> <a class="code" href="../../dd/dd7/vm__dump_8c.html#a410ecb917b379a91325deaea5765d7ee">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> *ep)</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span> {</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="keywordtype">int</span> i;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  fprintf(stderr, <span class="stringliteral">"-- env --------------------\n"</span>);</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span> </div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keywordflow">while</span> (<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>) {</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  fprintf(stderr, <span class="stringliteral">"--\n"</span>);</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keywordflow">for</span> (i = 0; i < <a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->env_size; i++) {</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  fprintf(stderr, <span class="stringliteral">"%04d: %08"</span><a class="code" href="../../de/de6/ruby_2ruby_8h.html#aa1bf33f94a5de592de48c16fcfe86db2">PRIxVALUE</a><span class="stringliteral">" (%p)"</span>, -<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->local_size + i, <a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->env[i],</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  (<span class="keywordtype">void</span> *)&<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->env[i]);</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <span class="keywordflow">if</span> (&<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->env[i] == ep)</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  fprintf(stderr, <span class="stringliteral">" <- ep"</span>);</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  fprintf(stderr, <span class="stringliteral">"\n"</span>);</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  }</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span> </div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>->prev_envval != 0) {</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <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>->prev_envval, <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>  }</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a> = 0;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  }</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  }</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  fprintf(stderr, <span class="stringliteral">"---------------------------\n"</span>);</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span> }</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span> </div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="../../dd/dd7/vm__dump_8c.html#ab3e8c769e0c63ba229bd1b6338639512"> 206</a></span> <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="l00207"></a><span class="lineno"> 207</span> {</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <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="l00209"></a><span class="lineno"> 209</span>  <span class="keywordtype">char</span> *selfstr;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../df/d38/vm__exec_8c.html">val</a> = <a class="code" href="../../db/d2e/intern_8h.html#acbb281bacf6b80f460143348e26142e9">rb_inspect</a>(proc-><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="l00211"></a><span class="lineno"> 211</span>  selfstr = <a class="code" href="../../de/de6/ruby_2ruby_8h.html#afc32c1526ac6cb40ec33cad8782c0bae">StringValueCStr</a>(<a class="code" href="../../df/d38/vm__exec_8c.html">val</a>);</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span> </div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  fprintf(stderr, <span class="stringliteral">"-- proc -------------------\n"</span>);</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  fprintf(stderr, <span class="stringliteral">"self: %s\n"</span>, selfstr);</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#aaa39b3177aba775195d515b937ef78ff">GetEnvPtr</a>(proc-><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="l00216"></a><span class="lineno"> 216</span>  <a class="code" href="../../dd/dd7/vm__dump_8c.html#a410ecb917b379a91325deaea5765d7ee">rb_vmdebug_env_dump_raw</a>(<a class="code" href="../../d5/df2/win32_8c.html#af973ca20f6594ad664c03daa83867128">env</a>, proc-><a class="code" href="../../d5/d77/structrb__proc__t.html#acf80b0e350012548c28cba1ea64a7a6e">block</a>.<a class="code" href="../../da/dc0/structrb__block__struct.html#a4b6a1d10dd8dc1167703ec7999b0fbf0">ep</a>);</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span> }</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span> </div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="../../dd/dd7/vm__dump_8c.html#aaefbe89c8af3d369bde339711a6e8668"> 220</a></span> <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="l00221"></a><span class="lineno"> 221</span> {</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#a36e942386b2b43383c44e769bffe5808">GetThreadPtr</a>(thval, th);</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <a class="code" href="../../dd/dd7/vm__dump_8c.html#a1dbfe98ae709e8806918bdd3121bf986">rb_vmdebug_stack_dump_raw</a>(th, th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>);</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span> }</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span> </div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span> <span class="preprocessor">#if VMDEBUG > 2</span></div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span> </div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span> <span class="comment">/* copy from vm.c */</span></div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span> <span class="keyword">static</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span> <a class="code" href="../../d0/db2/vm__insnhelper_8c.html#ad8c4d3e68920abf7fe2a84cffde3be1b">vm_base_ptr</a>(<a class="code" href="../../de/dc6/structrb__control__frame__struct.html">rb_control_frame_t</a> *cfp)</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span> {</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <a class="code" href="../../de/dc6/structrb__control__frame__struct.html">rb_control_frame_t</a> *prev_cfp = <a class="code" href="../../d8/d32/vm__core_8h.html#af087c881c3c493e3a4e326852e8ed2a9">RUBY_VM_PREVIOUS_CONTROL_FRAME</a>(cfp);</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *<a class="code" href="../../d5/d8c/vm__debug_8h.html#a1baecad7f27ccf1689612054ecf6a397">bp</a> = prev_cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a0e900de65ec08ba64df1125350b4071b">sp</a> + cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">iseq</a>-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#afbae994355f91f3ea547570debb757c0">local_size</a> + 1;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span> </div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <span class="keywordflow">if</span> (cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">iseq</a>-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#af8bc7dbae6f61d836b5bb9fb50b6cfb8">type</a> == ISEQ_TYPE_METHOD) {</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <a class="code" href="../../d5/d8c/vm__debug_8h.html#a1baecad7f27ccf1689612054ecf6a397">bp</a> += 1;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  }</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <span class="keywordflow">return</span> <a class="code" href="../../d5/d8c/vm__debug_8h.html#a1baecad7f27ccf1689612054ecf6a397">bp</a>;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span> }</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span> </div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span> vm_stack_dump_each(<a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th, <a class="code" href="../../de/dc6/structrb__control__frame__struct.html">rb_control_frame_t</a> *cfp)</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span> {</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <span class="keywordtype">int</span> i;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span> </div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> rstr;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *sp = cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a0e900de65ec08ba64df1125350b4071b">sp</a>;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *ep = cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a98749000ef85777099b645d7d755275d">ep</a>;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span> </div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <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>  <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>  <a class="code" href="../../d6/de3/structrb__iseq__struct.html">rb_iseq_t</a> *iseq = cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">iseq</a>;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span> </div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="keywordflow">if</span> (iseq == 0) {</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <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>  <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-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#ab8ddfbe44ad9a3582069c9fcf5211afc">me</a>-><a class="code" href="../../d7/db7/structrb__method__entry__struct.html#a31439bd620e98940410ba59244a85eae">called_id</a>);</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  }</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a> = <span class="stringliteral">"?"</span>;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  }</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  }</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <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>  <a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a> = <span class="stringliteral">"<ifunc>"</span>;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  }</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <a class="code" href="../../df/d77/ruby_8c.html#ad1447518f4372828b8435ae82e48499e">argc</a> = iseq-><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>  local_size = iseq-><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>  <a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a> = <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3f0e4e2b6d073369cc1c2ddde00b13bb">RSTRING_PTR</a>(iseq-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#acf13c2a9990e88276a7223a4881302d6">location</a>.<a class="code" href="../../dd/dc8/structrb__iseq__location__struct.html#a203f0f52988314c40d65dd137f50fcdd">label</a>);</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  }</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span> </div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  <span class="comment">/* stack trace header */</span></div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span> </div><div class="line"><a name="l00274"></a><span class="lineno"> 274</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#abc8be29d36c6252fce6bc61621f81b71">VM_FRAME_MAGIC_METHOD</a>||</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</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#ac9390ef02c17a0bc7e3bd359264562c7">VM_FRAME_MAGIC_TOP</a> ||</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</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#a83eeedff3dde6d2d1ffce5d84c2ba2f1">VM_FRAME_MAGIC_BLOCK</a> ||</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</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#a2524f590c07fceb689b2b7d53114ff5f">VM_FRAME_MAGIC_CLASS</a> ||</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</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#ac1f5b7efa57bccbeb4ff5e7ae6ff18c2">VM_FRAME_MAGIC_PROC</a> ||</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</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#a57840803108748406429fb1cb3b10530">VM_FRAME_MAGIC_LAMBDA</a>||</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</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#a26308f33317bb5b96ff89924822e8eab">VM_FRAME_MAGIC_CFUNC</a> ||</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</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#a795522d157a66fe8f0cdd335b28099c9">VM_FRAME_MAGIC_IFUNC</a> ||</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</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#ac7b8d797cce488d08572c273f49f28fe">VM_FRAME_MAGIC_EVAL</a> ||</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</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#a9759f4581d8755c37d9a88a1da185566">VM_FRAME_MAGIC_RESCUE</a>)</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  {</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span> </div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *ptr = ep - local_size;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span> </div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <a class="code" href="../../dd/dd7/vm__dump_8c.html#ac8e45243b47b9a4d73d977c62c3e6975">control_frame_dump</a>(th, cfp);</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span> </div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <span class="keywordflow">for</span> (i = 0; i < <a class="code" href="../../df/d77/ruby_8c.html#ad1447518f4372828b8435ae82e48499e">argc</a>; i++) {</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  rstr = <a class="code" href="../../db/d2e/intern_8h.html#acbb281bacf6b80f460143348e26142e9">rb_inspect</a>(*ptr);</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  fprintf(stderr, <span class="stringliteral">" arg %2d: %8s (%p)\n"</span>, i, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#afc32c1526ac6cb40ec33cad8782c0bae">StringValueCStr</a>(rstr),</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  (<span class="keywordtype">void</span> *)ptr++);</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  }</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <span class="keywordflow">for</span> (; i < local_size - 1; i++) {</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  rstr = <a class="code" href="../../db/d2e/intern_8h.html#acbb281bacf6b80f460143348e26142e9">rb_inspect</a>(*ptr);</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  fprintf(stderr, <span class="stringliteral">" local %2d: %8s (%p)\n"</span>, i, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#afc32c1526ac6cb40ec33cad8782c0bae">StringValueCStr</a>(rstr),</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  (<span class="keywordtype">void</span> *)ptr++);</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  }</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span> </div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  ptr = <a class="code" href="../../d0/db2/vm__insnhelper_8c.html#ad8c4d3e68920abf7fe2a84cffde3be1b">vm_base_ptr</a>(cfp);</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <span class="keywordflow">for</span> (; ptr < sp; ptr++, i++) {</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <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="l00304"></a><span class="lineno"> 304</span>  rstr = <a class="code" href="../../db/d2e/intern_8h.html#a03acd62c0b1edebbe1d61f957c19b7ac">rb_str_new2</a>(<span class="stringliteral">"undef"</span>);</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  }</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  rstr = <a class="code" href="../../db/d2e/intern_8h.html#acbb281bacf6b80f460143348e26142e9">rb_inspect</a>(*ptr);</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  }</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  fprintf(stderr, <span class="stringliteral">" stack %2d: %8s (%"</span><a class="code" href="../../de/de6/ruby_2ruby_8h.html#aca444ec27cdd86e8456e34dfc4aed830">PRIdPTRDIFF</a><span class="stringliteral">")\n"</span>, i, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#afc32c1526ac6cb40ec33cad8782c0bae">StringValueCStr</a>(rstr),</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  (ptr - th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a3fd7aab45a1c539bc9ca022acfc1ad51">stack</a>));</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  }</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  }</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="../../d8/d32/vm__core_8h.html#af2a793a1c756c8b552d8d1f897e63800">VM_FRAME_TYPE_FINISH_P</a>(cfp)) {</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <span class="keywordflow">if</span> ((th)->stack + (th)->stack_size > (<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *)(cfp + 1)) {</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  vm_stack_dump_each(th, cfp + 1);</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  }</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  <span class="comment">/* SDR(); */</span></div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  }</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  }</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <a class="code" href="../../db/dcc/error_8c.html#a2d5fb28e54f792e7341b2c45f52f3860">rb_bug</a>(<span class="stringliteral">"unsupport frame type: %08lx"</span>, <a class="code" href="../../d8/d32/vm__core_8h.html#a423bad734fe427f4d5deeb4fe71fff65">VM_FRAME_TYPE</a>(cfp));</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  }</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span> }</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span> </div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00328"></a><span class="lineno"><a class="line" href="../../dd/dd7/vm__dump_8c.html#a066f88891bb609fc5d137b4347038f40"> 328</a></span> <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="l00329"></a><span class="lineno"> 329</span> {</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <a class="code" href="../../de/dc6/structrb__control__frame__struct.html">rb_control_frame_t</a> *cfp = th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>;</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  ptrdiff_t pc = -1;</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  ptrdiff_t ep = cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a98749000ef85777099b645d7d755275d">ep</a> - th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a3fd7aab45a1c539bc9ca022acfc1ad51">stack</a>;</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  ptrdiff_t cfpi;</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span> </div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  <span class="keywordflow">if</span> (<a class="code" href="../../d8/d32/vm__core_8h.html#a79d03ad9b9cf8b7a8ca2b849e495a74f">RUBY_VM_NORMAL_ISEQ_P</a>(cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">iseq</a>)) {</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  pc = cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a596de17ddc9fb186769848a9f27f3510">pc</a> - cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">iseq</a>-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#aa70f3e195a4350acbbc130f8a95c9958">iseq_encoded</a>;</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  }</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span> </div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  <span class="keywordflow">if</span> (ep < 0 || (<span class="keywordtype">size_t</span>)ep > th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a1f263d7b7ee19fc82ea14d83ed1dc7bd">stack_size</a>) {</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  ep = -1;</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  }</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span> </div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  cfpi = ((<a class="code" href="../../de/dc6/structrb__control__frame__struct.html">rb_control_frame_t</a> *)(th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a3fd7aab45a1c539bc9ca022acfc1ad51">stack</a> + th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a1f263d7b7ee19fc82ea14d83ed1dc7bd">stack_size</a>)) - cfp;</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  fprintf(stderr, <span class="stringliteral">" [PC] %04"</span><a class="code" href="../../de/de6/ruby_2ruby_8h.html#aca444ec27cdd86e8456e34dfc4aed830">PRIdPTRDIFF</a><span class="stringliteral">", [SP] %04"</span><a class="code" href="../../de/de6/ruby_2ruby_8h.html#aca444ec27cdd86e8456e34dfc4aed830">PRIdPTRDIFF</a><span class="stringliteral">", [EP] %04"</span><a class="code" href="../../de/de6/ruby_2ruby_8h.html#aca444ec27cdd86e8456e34dfc4aed830">PRIdPTRDIFF</a><span class="stringliteral">", [CFP] %04"</span><a class="code" href="../../de/de6/ruby_2ruby_8h.html#aca444ec27cdd86e8456e34dfc4aed830">PRIdPTRDIFF</a><span class="stringliteral">"\n"</span>,</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  pc, (cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a0e900de65ec08ba64df1125350b4071b">sp</a> - th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a3fd7aab45a1c539bc9ca022acfc1ad51">stack</a>), ep, cfpi);</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span> }</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span> </div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00349"></a><span class="lineno"><a class="line" href="../../dd/dd7/vm__dump_8c.html#a2dcc677a7d7e5b4bebbbcf6afe5955fd"> 349</a></span> <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="l00350"></a><span class="lineno"> 350</span> {</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  <a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th;</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#a36e942386b2b43383c44e769bffe5808">GetThreadPtr</a>(thval, th);</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  <a class="code" href="../../dd/dd7/vm__dump_8c.html#a066f88891bb609fc5d137b4347038f40">rb_vmdebug_debug_print_register</a>(th);</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span> }</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span> </div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00357"></a><span class="lineno"><a class="line" href="../../dd/dd7/vm__dump_8c.html#ad5c2b08cb73028cde0c86d29d6011692"> 357</a></span> <a class="code" href="../../dd/dd7/vm__dump_8c.html#ad5c2b08cb73028cde0c86d29d6011692">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="../../de/dc6/structrb__control__frame__struct.html">rb_control_frame_t</a> *cfp,<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *_pc)</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span> {</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  <a class="code" href="../../d6/de3/structrb__iseq__struct.html">rb_iseq_t</a> *iseq = cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">iseq</a>;</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span> </div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  <span class="keywordflow">if</span> (iseq != 0) {</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> *seq = iseq-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#a8699ab44e2c44e7f8df87e26a9c7bee8">iseq</a>;</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  ptrdiff_t pc = _pc - iseq-><a class="code" href="../../d6/de3/structrb__iseq__struct.html#aa70f3e195a4350acbbc130f8a95c9958">iseq_encoded</a>;</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  <span class="keywordtype">int</span> i;</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span> </div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  <span class="keywordflow">for</span> (i=0; i<(int)<a class="code" href="../../dd/dd7/vm__dump_8c.html#acd3a62eaa8bfb2c0c2a59c2afa1179bb">VM_CFP_CNT</a>(th, cfp); i++) {</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  printf(<span class="stringliteral">" "</span>);</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  }</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  printf(<span class="stringliteral">"| "</span>);</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  <span class="keywordflow">if</span>(0)printf(<span class="stringliteral">"[%03ld] "</span>, (<span class="keywordtype">long</span>)(cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a0e900de65ec08ba64df1125350b4071b">sp</a> - th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a3fd7aab45a1c539bc9ca022acfc1ad51">stack</a>));</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span> </div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <span class="comment">/* printf("%3"PRIdPTRDIFF" ", VM_CFP_CNT(th, cfp)); */</span></div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  <span class="keywordflow">if</span> (pc >= 0) {</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  <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="l00375"></a><span class="lineno"> 375</span>  }</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  }</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span> </div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span> <span class="preprocessor">#if VMDEBUG > 3</span></div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  fprintf(stderr, <span class="stringliteral">" (1)"</span>);</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  <a class="code" href="../../dd/dd7/vm__dump_8c.html#a066f88891bb609fc5d137b4347038f40">rb_vmdebug_debug_print_register</a>(th);</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span> }</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span> </div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00385"></a><span class="lineno"><a class="line" href="../../dd/dd7/vm__dump_8c.html#a10140e7b70a08eb48ba3befe9485ac42"> 385</a></span> <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="../../de/dc6/structrb__control__frame__struct.html">rb_control_frame_t</a> *cfp</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span> #<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="l00387"></a><span class="lineno"> 387</span>  , <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="l00388"></a><span class="lineno"> 388</span> #endif</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  )</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span> {</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span> <span class="preprocessor">#if VMDEBUG > 9</span></div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#ab913ccb5c8b4c3065335169b15925411">SDR2</a>(cfp);</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span> </div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span> <span class="preprocessor">#if VMDEBUG > 3</span></div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  fprintf(stderr, <span class="stringliteral">" (2)"</span>);</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  <a class="code" href="../../dd/dd7/vm__dump_8c.html#a066f88891bb609fc5d137b4347038f40">rb_vmdebug_debug_print_register</a>(th);</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  <span class="comment">/* stack_dump_raw(th, cfp); */</span></div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span> </div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span> <span class="preprocessor">#if VMDEBUG > 2</span></div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <span class="comment">/* stack_dump_thobj(th); */</span></div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  vm_stack_dump_each(th, th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>);</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span> </div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span> <span class="preprocessor">#if OPT_STACK_CACHING</span></div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  {</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> rstr;</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  rstr = <a class="code" href="../../db/d2e/intern_8h.html#acbb281bacf6b80f460143348e26142e9">rb_inspect</a>(reg_a);</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  fprintf(stderr, <span class="stringliteral">" sc reg A: %s\n"</span>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#afc32c1526ac6cb40ec33cad8782c0bae">StringValueCStr</a>(rstr));</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  rstr = <a class="code" href="../../db/d2e/intern_8h.html#acbb281bacf6b80f460143348e26142e9">rb_inspect</a>(reg_b);</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  fprintf(stderr, <span class="stringliteral">" sc reg B: %s\n"</span>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#afc32c1526ac6cb40ec33cad8782c0bae">StringValueCStr</a>(rstr));</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  }</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  printf</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  (<span class="stringliteral">"--------------------------------------------------------------\n"</span>);</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span> }</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span> </div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a></div><div class="line"><a name="l00420"></a><span class="lineno"><a class="line" href="../../dd/dd7/vm__dump_8c.html#a4829e1bba567279a3c7df1a8e0056c65"> 420</a></span> <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="l00421"></a><span class="lineno"> 421</span> {</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  <a class="code" href="../../d2/d66/structrb__thread__struct.html">rb_thread_t</a> *th;</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  <a class="code" href="../../de/dc6/structrb__control__frame__struct.html">rb_control_frame_t</a> *cfp;</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  <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="l00425"></a><span class="lineno"> 425</span>  cfp = th-><a class="code" href="../../d2/d66/structrb__thread__struct.html#a2ed7f694d58d876aa6f0fae6986bc921">cfp</a>;</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span> </div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  fprintf(stderr, <span class="stringliteral">"Thread state dump:\n"</span>);</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  fprintf(stderr, <span class="stringliteral">"pc : %p, sp : %p\n"</span>, (<span class="keywordtype">void</span> *)cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a596de17ddc9fb186769848a9f27f3510">pc</a>, (<span class="keywordtype">void</span> *)cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a0e900de65ec08ba64df1125350b4071b">sp</a>);</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  fprintf(stderr, <span class="stringliteral">"cfp: %p, ep : %p\n"</span>, (<span class="keywordtype">void</span> *)cfp, (<span class="keywordtype">void</span> *)cfp-><a class="code" href="../../de/dc6/structrb__control__frame__struct.html#a98749000ef85777099b645d7d755275d">ep</a>);</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span> </div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  <span class="keywordflow">return</span> <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aba03c3c4ff187bbda6c4459e2dc9f6c6">Qnil</a>;</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span> }</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span> </div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span> <span class="preprocessor">#if defined(HAVE_BACKTRACE)</span></div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span> <span class="preprocessor"># if HAVE_LIBUNWIND</span></div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span> <span class="preprocessor"># undef backtrace</span></div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span> <span class="preprocessor"># define backtrace unw_backtrace</span></div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span> <span class="preprocessor"># elif defined(__APPLE__) && defined(__x86_64__) && defined(HAVE_LIBUNWIND_H)</span></div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span> <span class="preprocessor"># define UNW_LOCAL_ONLY</span></div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span> <span class="preprocessor"># include <libunwind.h></span></div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span> <span class="preprocessor"># undef backtrace</span></div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span> <span class="keywordtype">int</span> backtrace (<span class="keywordtype">void</span> **trace, <span class="keywordtype">int</span> <a class="code" href="../../d5/db5/encoding_8c.html#a439227feff9d7f55384e8780cfc2eb82">size</a>) {</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  unw_cursor_t cursor; unw_context_t uc;</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  unw_word_t ip;</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  <span class="keywordtype">int</span> n = 0;</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span> </div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  unw_getcontext(&uc);</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  unw_init_local(&cursor, &uc);</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  <span class="keywordflow">while</span> (unw_step(&cursor) > 0) {</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  unw_get_reg(&cursor, UNW_REG_IP, &ip);</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  trace[n++] = (<span class="keywordtype">void</span> *)ip;</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  {</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  <span class="keywordtype">char</span> <a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#ac37f17a60c8b5533aac4840c681f62b8">buf</a>[256];</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  unw_get_proc_name(&cursor, <a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#ac37f17a60c8b5533aac4840c681f62b8">buf</a>, 256, &ip);</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  <span class="keywordflow">if</span> (strncmp(<span class="stringliteral">"_sigtramp"</span>, <a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#ac37f17a60c8b5533aac4840c681f62b8">buf</a>, <span class="keyword">sizeof</span>(<span class="stringliteral">"_sigtramp"</span>)) == 0) {</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  <span class="keywordflow">goto</span> darwin_sigtramp;</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  }</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  }</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  }</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  <span class="keywordflow">return</span> n;</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span> darwin_sigtramp:</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  <span class="comment">/* darwin's bundled libunwind doesn't support signal trampoline */</span></div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  {</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  ucontext_t *uctx;</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  <span class="comment">/* get _sigtramp's ucontext_t and set values to cursor</span></div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span> <span class="comment"> * http://www.opensource.apple.com/source/Libc/Libc-825.25/i386/sys/_sigtramp.s</span></div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span> <span class="comment"> * http://www.opensource.apple.com/source/libunwind/libunwind-35.1/src/unw_getcontext.s</span></div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span> <span class="comment"> */</span></div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  unw_get_reg(&cursor, UNW_X86_64_RBX, &ip);</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  uctx = (ucontext_t *)ip;</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  unw_set_reg(&cursor, UNW_X86_64_RAX, uctx->uc_mcontext->__ss.__rax);</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  unw_set_reg(&cursor, UNW_X86_64_RBX, uctx->uc_mcontext->__ss.__rbx);</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  unw_set_reg(&cursor, UNW_X86_64_RCX, uctx->uc_mcontext->__ss.__rcx);</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  unw_set_reg(&cursor, UNW_X86_64_RDX, uctx->uc_mcontext->__ss.__rdx);</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  unw_set_reg(&cursor, UNW_X86_64_RDI, uctx->uc_mcontext->__ss.__rdi);</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  unw_set_reg(&cursor, UNW_X86_64_RSI, uctx->uc_mcontext->__ss.__rsi);</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  unw_set_reg(&cursor, UNW_X86_64_RBP, uctx->uc_mcontext->__ss.__rbp);</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  unw_set_reg(&cursor, UNW_X86_64_RSP, 8+(uctx->uc_mcontext->__ss.__rsp));</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  unw_set_reg(&cursor, UNW_X86_64_R8, uctx->uc_mcontext->__ss.__r8);</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  unw_set_reg(&cursor, UNW_X86_64_R9, uctx->uc_mcontext->__ss.__r9);</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  unw_set_reg(&cursor, UNW_X86_64_R10, uctx->uc_mcontext->__ss.__r10);</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  unw_set_reg(&cursor, UNW_X86_64_R11, uctx->uc_mcontext->__ss.__r11);</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  unw_set_reg(&cursor, UNW_X86_64_R12, uctx->uc_mcontext->__ss.__r12);</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  unw_set_reg(&cursor, UNW_X86_64_R13, uctx->uc_mcontext->__ss.__r13);</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  unw_set_reg(&cursor, UNW_X86_64_R14, uctx->uc_mcontext->__ss.__r14);</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  unw_set_reg(&cursor, UNW_X86_64_R15, uctx->uc_mcontext->__ss.__r15);</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  ip = *(unw_word_t*)uctx->uc_mcontext->__ss.__rsp;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  unw_set_reg(&cursor, UNW_REG_IP, ip);</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  trace[n++] = (<span class="keywordtype">void</span> *)uctx->uc_mcontext->__ss.__rip;</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  trace[n++] = (<span class="keywordtype">void</span> *)ip;</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  }</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  <span class="keywordflow">while</span> (unw_step(&cursor) > 0) {</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  unw_get_reg(&cursor, UNW_REG_IP, &ip);</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  trace[n++] = (<span class="keywordtype">void</span> *)ip;</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  }</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  <span class="keywordflow">return</span> n;</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span> }</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span> <span class="preprocessor"># elif defined(BROKEN_BACKTRACE)</span></div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span> <span class="preprocessor"># undef HAVE_BACKTRACE</span></div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span> <span class="preprocessor"># define HAVE_BACKTRACE 0</span></div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span> <span class="preprocessor"># endif</span></div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00503"></a><span class="lineno"><a class="line" href="../../dd/dd7/vm__dump_8c.html#a20b54f4ff55e31a8cca0a50884304a79"> 503</a></span> <span class="preprocessor"># define HAVE_BACKTRACE 0</span></div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span> </div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span> <span class="preprocessor">#if HAVE_BACKTRACE</span></div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span> <span class="preprocessor"># include <execinfo.h></span></div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span> <span class="preprocessor">#elif defined(_WIN32)</span></div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span> <span class="preprocessor"># include <imagehlp.h></span></div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span> <span class="preprocessor"># ifndef SYMOPT_DEBUG</span></div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span> <span class="preprocessor"># define SYMOPT_DEBUG 0x80000000</span></div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span> <span class="preprocessor"># endif</span></div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span> <span class="preprocessor"># ifndef MAX_SYM_NAME</span></div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span> <span class="preprocessor"># define MAX_SYM_NAME 2000</span></div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span> <span class="keyword">typedef</span> <span class="keyword">struct </span>{</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  DWORD64 Offset;</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  WORD Segment;</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  ADDRESS_MODE Mode;</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span> } ADDRESS64;</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span> <span class="keyword">typedef</span> <span class="keyword">struct </span>{</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  DWORD64 Thread;</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  <a class="code" href="../../d2/d99/win32ole_8c.html#ad3196fc77437d523ed1459e8ff809d3a">DWORD</a> ThCallbackStack;</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  <a class="code" href="../../d2/d99/win32ole_8c.html#ad3196fc77437d523ed1459e8ff809d3a">DWORD</a> ThCallbackBStore;</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  <a class="code" href="../../d2/d99/win32ole_8c.html#ad3196fc77437d523ed1459e8ff809d3a">DWORD</a> NextCallback;</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  <a class="code" href="../../d2/d99/win32ole_8c.html#ad3196fc77437d523ed1459e8ff809d3a">DWORD</a> FramePointer;</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  DWORD64 KiCallUserMode;</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  DWORD64 KeUserCallbackDispatcher;</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  DWORD64 SystemRangeStart;</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  DWORD64 KiUserExceptionDispatcher;</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  DWORD64 StackBase;</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  DWORD64 StackLimit;</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  DWORD64 Reserved[5];</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span> } KDHELP64;</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span> <span class="keyword">typedef</span> <span class="keyword">struct </span>{</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  ADDRESS64 AddrPC;</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  ADDRESS64 AddrReturn;</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  ADDRESS64 AddrFrame;</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  ADDRESS64 AddrStack;</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  ADDRESS64 AddrBStore;</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  <span class="keywordtype">void</span> *FuncTableEntry;</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  DWORD64 Params[4];</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  BOOL Far;</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  BOOL Virtual;</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  DWORD64 Reserved[3];</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  KDHELP64 KdHelp;</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span> } STACKFRAME64;</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span> <span class="keyword">typedef</span> <span class="keyword">struct </span>{</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  <a class="code" href="../../d2/d99/win32ole_8c.html#a516d92a41f815ad3c448380a9aa3e4d0">ULONG</a> SizeOfStruct;</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  <a class="code" href="../../d2/d99/win32ole_8c.html#a516d92a41f815ad3c448380a9aa3e4d0">ULONG</a> TypeIndex;</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  ULONG64 Reserved[2];</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  <a class="code" href="../../d2/d99/win32ole_8c.html#a516d92a41f815ad3c448380a9aa3e4d0">ULONG</a> Index;</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  <a class="code" href="../../d2/d99/win32ole_8c.html#a516d92a41f815ad3c448380a9aa3e4d0">ULONG</a> Size;</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  ULONG64 ModBase;</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  <a class="code" href="../../d2/d99/win32ole_8c.html#a516d92a41f815ad3c448380a9aa3e4d0">ULONG</a> Flags;</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  ULONG64 Value;</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  ULONG64 Address;</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  <a class="code" href="../../d2/d99/win32ole_8c.html#a516d92a41f815ad3c448380a9aa3e4d0">ULONG</a> Register;</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  <a class="code" href="../../d2/d99/win32ole_8c.html#a516d92a41f815ad3c448380a9aa3e4d0">ULONG</a> Scope;</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  <a class="code" href="../../d2/d99/win32ole_8c.html#a516d92a41f815ad3c448380a9aa3e4d0">ULONG</a> Tag;</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  <a class="code" href="../../d2/d99/win32ole_8c.html#a516d92a41f815ad3c448380a9aa3e4d0">ULONG</a> NameLen;</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  <a class="code" href="../../d2/d99/win32ole_8c.html#a516d92a41f815ad3c448380a9aa3e4d0">ULONG</a> MaxNameLen;</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  <span class="keywordtype">char</span> Name[1];</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span> } SYMBOL_INFO;</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span> <span class="keyword">typedef</span> <span class="keyword">struct </span>{</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  <a class="code" href="../../d2/d99/win32ole_8c.html#ad3196fc77437d523ed1459e8ff809d3a">DWORD</a> SizeOfStruct;</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  <span class="keywordtype">void</span> *Key;</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  <a class="code" href="../../d2/d99/win32ole_8c.html#ad3196fc77437d523ed1459e8ff809d3a">DWORD</a> LineNumber;</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  <span class="keywordtype">char</span> *FileName;</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  DWORD64 Address;</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span> } IMAGEHLP_LINE64;</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span> <span class="keyword">typedef</span> <span class="keywordtype">void</span> *PREAD_PROCESS_MEMORY_ROUTINE64;</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span> <span class="keyword">typedef</span> <span class="keywordtype">void</span> *PFUNCTION_TABLE_ACCESS_ROUTINE64;</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span> <span class="keyword">typedef</span> <span class="keywordtype">void</span> *PGET_MODULE_BASE_ROUTINE64;</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span> <span class="keyword">typedef</span> <span class="keywordtype">void</span> *PTRANSLATE_ADDRESS_ROUTINE64;</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span> <span class="preprocessor"># endif</span></div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span> </div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span> <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span> dump_thread(<span class="keywordtype">void</span> *arg)</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span> {</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  HANDLE dbghelp;</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  BOOL (WINAPI *pSymInitialize)(HANDLE, <span class="keyword">const</span> <span class="keywordtype">char</span> *, BOOL);</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  BOOL (WINAPI *pSymCleanup)(HANDLE);</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  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="l00584"></a><span class="lineno"> 584</span>  DWORD64 (WINAPI *pSymGetModuleBase64)(HANDLE, DWORD64);</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  BOOL (WINAPI *pSymFromAddr)(HANDLE, DWORD64, DWORD64 *, SYMBOL_INFO *);</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  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="l00587"></a><span class="lineno"> 587</span>  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="l00588"></a><span class="lineno"> 588</span>  <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="l00589"></a><span class="lineno"> 589</span>  HANDLE ph;</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  HANDLE th;</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span> </div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  dbghelp = LoadLibrary(<span class="stringliteral">"dbghelp.dll"</span>);</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  <span class="keywordflow">if</span> (!dbghelp) <span class="keywordflow">return</span>;</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  pSymInitialize = (BOOL (WINAPI *)(HANDLE, <span class="keyword">const</span> <span class="keywordtype">char</span> *, BOOL))GetProcAddress(dbghelp, <span class="stringliteral">"SymInitialize"</span>);</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  pSymCleanup = (BOOL (WINAPI *)(HANDLE))GetProcAddress(dbghelp, <span class="stringliteral">"SymCleanup"</span>);</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  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">"StackWalk64"</span>);</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  pSymGetModuleBase64 = (DWORD64 (WINAPI *)(HANDLE, DWORD64))GetProcAddress(dbghelp, <span class="stringliteral">"SymGetModuleBase64"</span>);</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  pSymFromAddr = (BOOL (WINAPI *)(HANDLE, DWORD64, DWORD64 *, SYMBOL_INFO *))GetProcAddress(dbghelp, <span class="stringliteral">"SymFromAddr"</span>);</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  pSymGetLineFromAddr64 = (BOOL (WINAPI *)(HANDLE, DWORD64, <a class="code" href="../../d2/d99/win32ole_8c.html#ad3196fc77437d523ed1459e8ff809d3a">DWORD</a> *, IMAGEHLP_LINE64 *))GetProcAddress(dbghelp, <span class="stringliteral">"SymGetLineFromAddr64"</span>);</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  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">"kernel32.dll"</span>), <span class="stringliteral">"OpenThread"</span>);</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  <span class="keywordflow">if</span> (pSymInitialize && pSymCleanup && pStackWalk64 && pSymGetModuleBase64 &&</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>  pSymFromAddr && pSymGetLineFromAddr64 && pOpenThread) {</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  SymSetOptions(SYMOPT_UNDNAME | SYMOPT_DEFERRED_LOADS | SYMOPT_DEBUG | SYMOPT_LOAD_LINES);</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  ph = GetCurrentProcess();</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>  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="l00606"></a><span class="lineno"> 606</span>  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="l00607"></a><span class="lineno"> 607</span>  <span class="keywordflow">if</span> (th) {</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  <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="l00609"></a><span class="lineno"> 609</span>  CONTEXT context;</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  memset(&context, 0, <span class="keyword">sizeof</span>(context));</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  context.ContextFlags = CONTEXT_FULL;</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  <span class="keywordflow">if</span> (GetThreadContext(th, &context)) {</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  <span class="keywordtype">char</span> libpath[MAX_PATH];</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  <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="l00615"></a><span class="lineno"> 615</span>  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="l00616"></a><span class="lineno"> 616</span>  <a class="code" href="../../d2/d99/win32ole_8c.html#ad3196fc77437d523ed1459e8ff809d3a">DWORD</a> mac;</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>  STACKFRAME64 frame;</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  memset(&frame, 0, <span class="keyword">sizeof</span>(frame));</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span> <span class="preprocessor">#if defined(_M_AMD64) || defined(__x86_64__)</span></div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>  mac = IMAGE_FILE_MACHINE_AMD64;</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  frame.AddrPC.Mode = AddrModeFlat;</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  frame.AddrPC.Offset = context.Rip;</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  frame.AddrFrame.Mode = AddrModeFlat;</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>  frame.AddrFrame.Offset = context.Rbp;</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  frame.AddrStack.Mode = AddrModeFlat;</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>  frame.AddrStack.Offset = context.Rsp;</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span> <span class="preprocessor">#elif defined(_M_IA64) || defined(__ia64__)</span></div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>  mac = IMAGE_FILE_MACHINE_IA64;</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>  frame.AddrPC.Mode = AddrModeFlat;</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>  frame.AddrPC.Offset = context.StIIP;</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>  frame.AddrBStore.Mode = AddrModeFlat;</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>  frame.AddrBStore.Offset = context.RsBSP;</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>  frame.AddrStack.Mode = AddrModeFlat;</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>  frame.AddrStack.Offset = context.IntSp;</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span> <span class="preprocessor">#else </span><span class="comment">/* i386 */</span><span class="preprocessor"></span></div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>  mac = IMAGE_FILE_MACHINE_I386;</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>  frame.AddrPC.Mode = AddrModeFlat;</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>  frame.AddrPC.Offset = context.Eip;</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>  frame.AddrFrame.Mode = AddrModeFlat;</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>  frame.AddrFrame.Offset = context.Ebp;</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>  frame.AddrStack.Mode = AddrModeFlat;</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>  frame.AddrStack.Offset = context.Esp;</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span> </div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>  <span class="keywordflow">while</span> (pStackWalk64(mac, ph, th, &frame, &context, <a class="code" href="../../d4/db0/__sdbm_8c.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>,</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>  <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="l00647"></a><span class="lineno"> 647</span>  DWORD64 addr = frame.AddrPC.Offset;</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>  IMAGEHLP_LINE64 line;</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>  DWORD64 displacement;</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>  <a class="code" href="../../d2/d99/win32ole_8c.html#ad3196fc77437d523ed1459e8ff809d3a">DWORD</a> tmp;</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span> </div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>  <span class="keywordflow">if</span> (addr == frame.AddrReturn.Offset || addr == 0 ||</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>  frame.AddrReturn.Offset == 0)</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span> </div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>  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="l00657"></a><span class="lineno"> 657</span>  info->SizeOfStruct = <span class="keyword">sizeof</span>(SYMBOL_INFO);</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>  info->MaxNameLen = MAX_SYM_NAME;</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>  <span class="keywordflow">if</span> (pSymFromAddr(ph, addr, &displacement, info)) {</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>  <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="l00661"></a><span class="lineno"> 661</span>  fprintf(stderr, <span class="stringliteral">"%s"</span>, libpath);</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>  fprintf(stderr, <span class="stringliteral">"(%s+0x%I64x)"</span>,</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>  info->Name, displacement);</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>  }</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>  fprintf(stderr, <span class="stringliteral">" [0x%p]"</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="l00666"></a><span class="lineno"> 666</span>  memset(&line, 0, <span class="keyword">sizeof</span>(line));</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>  line.SizeOfStruct = <span class="keyword">sizeof</span>(line);</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>  <span class="keywordflow">if</span> (pSymGetLineFromAddr64(ph, addr, &tmp, &line))</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>  fprintf(stderr, <span class="stringliteral">" %s:%lu"</span>, line.FileName, line.LineNumber);</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>  fprintf(stderr, <span class="stringliteral">"\n"</span>);</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>  }</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>  }</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span> </div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>  ResumeThread(th);</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>  }</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>  CloseHandle(th);</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>  }</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>  pSymCleanup(ph);</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>  }</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>  FreeLibrary(dbghelp);</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span> }</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span> </div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00685"></a><span class="lineno"><a class="line" href="../../dd/dd7/vm__dump_8c.html#a087782b21c9f1e04c5eef8185586542d"> 685</a></span> <a class="code" href="../../dd/dd7/vm__dump_8c.html#a087782b21c9f1e04c5eef8185586542d">rb_print_backtrace</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span> {</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span> <span class="preprocessor">#if HAVE_BACKTRACE</span></div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span> <span class="preprocessor">#define MAX_NATIVE_TRACE 1024</span></div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>  <span class="keyword">static</span> <span class="keywordtype">void</span> *trace[MAX_NATIVE_TRACE];</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>  <span class="keywordtype">int</span> n = backtrace(trace, MAX_NATIVE_TRACE);</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>  <span class="keywordtype">char</span> **syms = backtrace_symbols(trace, n);</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span> </div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>  <span class="keywordflow">if</span> (syms) {</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span> <span class="preprocessor">#ifdef USE_ELF</span></div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>  rb_dump_backtrace_with_lines(n, trace, syms);</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>  <span class="keywordtype">int</span> i;</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>  <span class="keywordflow">for</span> (i=0; i<n; i++) {</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>  fprintf(stderr, <span class="stringliteral">"%s\n"</span>, syms[i]);</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>  }</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>  <a class="code" href="../../d2/d99/win32ole_8c.html#a18100522f0b19b5e9b9875f5737a9386">free</a>(syms);</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>  }</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span> <span class="preprocessor">#elif defined(_WIN32)</span></div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>  <a class="code" href="../../d2/d99/win32ole_8c.html#ad3196fc77437d523ed1459e8ff809d3a">DWORD</a> tid = GetCurrentThreadId();</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>  HANDLE th = (HANDLE)_beginthread(dump_thread, 0, &tid);</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>  <span class="keywordflow">if</span> (th != (HANDLE)-1)</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>  WaitForSingleObject(th, INFINITE);</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span> }</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span> </div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00713"></a><span class="lineno"><a class="line" href="../../dd/dd7/vm__dump_8c.html#af1b67bbf4b72295a772178d0bd939dd0"> 713</a></span> <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="l00714"></a><span class="lineno"> 714</span> {</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span> <span class="preprocessor">#ifdef __linux__</span></div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span> <span class="preprocessor"># define PROC_MAPS_NAME "/proc/self/maps"</span></div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span> <span class="preprocessor">#ifdef PROC_MAPS_NAME</span></div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>  <span class="keyword">enum</span> {other_runtime_info = 1};</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>  <span class="keyword">enum</span> {other_runtime_info = 0};</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>  <span class="keyword">const</span> <a class="code" href="../../db/d74/structrb__vm__struct.html">rb_vm_t</a> *<span class="keyword">const</span> vm = <a class="code" href="../../d8/d32/vm__core_8h.html#a6cfcd3997994924c8cd13c3b5c099ec6">GET_VM</a>();</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span> </div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span> <span class="preprocessor">#if defined __APPLE__</span></div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>  fputs(<span class="stringliteral">"-- Crash Report log information "</span></div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>  <span class="stringliteral">"--------------------------------------------\n"</span></div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>  <span class="stringliteral">" See Crash Report log file under the one of following:\n"</span></div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>  <span class="stringliteral">" * ~/Library/Logs/CrashReporter\n"</span></div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>  <span class="stringliteral">" * /Library/Logs/CrashReporter\n"</span></div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>  <span class="stringliteral">" * ~/Library/Logs/DiagnosticReports\n"</span></div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>  <span class="stringliteral">" * /Library/Logs/DiagnosticReports\n"</span></div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>  <span class="stringliteral">" for more details.\n"</span></div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>  <span class="stringliteral">"\n"</span>,</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>  stderr);</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>  <span class="keywordflow">if</span> (vm) {</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>  <a class="code" href="../../d8/d32/vm__core_8h.html#ac33c371d81972685538097cb4f49181f">SDR</a>();</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>  <a class="code" href="../../db/dde/internal_8h.html#a502328e0566286728cffab0fce8b1d98">rb_backtrace_print_as_bugreport</a>();</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>  fputs(<span class="stringliteral">"\n"</span>, stderr);</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>  }</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span> </div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span> <span class="preprocessor">#if HAVE_BACKTRACE || defined(_WIN32)</span></div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>  fprintf(stderr, <span class="stringliteral">"-- C level backtrace information "</span></div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>  <span class="stringliteral">"-------------------------------------------\n"</span>);</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>  <a class="code" href="../../dd/dd7/vm__dump_8c.html#a087782b21c9f1e04c5eef8185586542d">rb_print_backtrace</a>();</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span> </div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span> </div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>  fprintf(stderr, <span class="stringliteral">"\n"</span>);</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span> <span class="preprocessor">#endif </span><span class="comment">/* HAVE_BACKTRACE */</span><span class="preprocessor"></span></div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span> </div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>  <span class="keywordflow">if</span> (other_runtime_info || vm) {</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>  fprintf(stderr, <span class="stringliteral">"-- Other runtime information "</span></div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>  <span class="stringliteral">"-----------------------------------------------\n\n"</span>);</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>  }</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>  <span class="keywordflow">if</span> (vm) {</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>  <span class="keywordtype">int</span> i;</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> <a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a>;</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>  <span class="keywordtype">long</span> len;</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> max_name_length = 1024;</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span> <span class="preprocessor"># define LIMITED_NAME_LENGTH(s) \</span></div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span> <span class="preprocessor"> (((len = RSTRING_LEN(s)) > max_name_length) ? max_name_length : (int)len)</span></div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span> </div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>  <a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a> = vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#a0fabbe8c44aac34d9538388955e2b461">progname</a>;</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>  fprintf(stderr, <span class="stringliteral">"* Loaded script: %.*s\n"</span>,</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>  <a class="code" href="../../dd/dd7/vm__dump_8c.html#ad6a80f86a2270267d54d25899f51b98a">LIMITED_NAME_LENGTH</a>(<a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a>), <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3f0e4e2b6d073369cc1c2ddde00b13bb">RSTRING_PTR</a>(<a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a>));</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>  fprintf(stderr, <span class="stringliteral">"\n"</span>);</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>  fprintf(stderr, <span class="stringliteral">"* Loaded features:\n\n"</span>);</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>  <span class="keywordflow">for</span> (i=0; i<<a class="code" href="../../de/de6/ruby_2ruby_8h.html#a0068ed01a16efbb8740e1b0c295b672e">RARRAY_LEN</a>(vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#adc9a2f20cba11e9a872bbe603b7db593">loaded_features</a>); i++) {</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>  <a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a> = <a class="code" href="../../de/de6/ruby_2ruby_8h.html#aedbbba284826af7e4c26566a410cd848">RARRAY_AREF</a>(vm-><a class="code" href="../../db/d74/structrb__vm__struct.html#adc9a2f20cba11e9a872bbe603b7db593">loaded_features</a>, i);</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>  <span class="keywordflow">if</span> (<a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac4f895997656c2abd27a29a8b8e982ca">RB_TYPE_P</a>(<a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a22a8c2a4bbaae9b68f65c9bb92fd4e39">T_STRING</a>)) {</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>  fprintf(stderr, <span class="stringliteral">" %4d %.*s\n"</span>, i,</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>  <a class="code" href="../../dd/dd7/vm__dump_8c.html#ad6a80f86a2270267d54d25899f51b98a">LIMITED_NAME_LENGTH</a>(<a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a>), <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3f0e4e2b6d073369cc1c2ddde00b13bb">RSTRING_PTR</a>(<a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a>));</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>  }</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac4f895997656c2abd27a29a8b8e982ca">RB_TYPE_P</a>(<a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#ad04c63d175774c6d6e7dfaf0f0a982c9">T_CLASS</a>) || <a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac4f895997656c2abd27a29a8b8e982ca">RB_TYPE_P</a>(<a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a6cdc7dfe8f84777325da08a96ae5f795">T_MODULE</a>)) {</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<span class="keyword">const</span> <a class="code" href="../../d5/d9d/tcltklib_8c.html#ac765329451135abec74c45e1897abf26">type</a> = <a class="code" href="../../de/de6/ruby_2ruby_8h.html#ac4f895997656c2abd27a29a8b8e982ca">RB_TYPE_P</a>(<a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a>, <a class="code" href="../../de/de6/ruby_2ruby_8h.html#ad04c63d175774c6d6e7dfaf0f0a982c9">T_CLASS</a>) ?</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>  <span class="stringliteral">"class"</span> : <span class="stringliteral">"module"</span>;</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>  <a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a> = <a class="code" href="../../db/d2e/intern_8h.html#a006647827acc7cce9e940e5f7fa3a1b8">rb_class_name</a>(<a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a>);</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>  fprintf(stderr, <span class="stringliteral">" %4d %s:%.*s\n"</span>, i, <a class="code" href="../../d5/d9d/tcltklib_8c.html#ac765329451135abec74c45e1897abf26">type</a>,</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>  <a class="code" href="../../dd/dd7/vm__dump_8c.html#ad6a80f86a2270267d54d25899f51b98a">LIMITED_NAME_LENGTH</a>(<a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a>), <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3f0e4e2b6d073369cc1c2ddde00b13bb">RSTRING_PTR</a>(<a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a>));</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>  }</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>  <span class="keywordflow">else</span> {</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>  <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3c1d4bfc6a81af60bdcb48744c35f760">VALUE</a> klass = <a class="code" href="../../db/d2e/intern_8h.html#a006647827acc7cce9e940e5f7fa3a1b8">rb_class_name</a>(<a class="code" href="../../de/de6/ruby_2ruby_8h.html#ad07df58de9895cbc33c10f02540d2d4d">CLASS_OF</a>(<a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a>));</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>  fprintf(stderr, <span class="stringliteral">" %4d #<%.*s:%p>\n"</span>, i,</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>  <a class="code" href="../../dd/dd7/vm__dump_8c.html#ad6a80f86a2270267d54d25899f51b98a">LIMITED_NAME_LENGTH</a>(klass), <a class="code" href="../../de/de6/ruby_2ruby_8h.html#a3f0e4e2b6d073369cc1c2ddde00b13bb">RSTRING_PTR</a>(klass),</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>  (<span class="keywordtype">void</span> *)<a class="code" href="../../d6/da0/nkf-utf8_2nkf_8c.html#a8f8f80d37794cde9472343e4487ba3eb">name</a>);</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>  }</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>  }</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>  fprintf(stderr, <span class="stringliteral">"\n"</span>);</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>  }</div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span> </div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>  {</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span> <span class="preprocessor">#ifdef PROC_MAPS_NAME</span></div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>  {</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>  <a class="code" href="../../db/ddf/struct____s_f_i_l_e.html">FILE</a> *fp = fopen(PROC_MAPS_NAME, <span class="stringliteral">"r"</span>);</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>  <span class="keywordflow">if</span> (fp) {</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>  fprintf(stderr, <span class="stringliteral">"* Process memory map:\n\n"</span>);</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span> </div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>  <span class="keywordflow">while</span> (!<a class="code" href="../../da/d50/vsnprintf_8c.html#ac752882e678e3368676e57e5eb4b9d86">feof</a>(fp)) {</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>  <span class="keywordtype">char</span> buff[0x100];</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>  <span class="keywordtype">size_t</span> rn = fread(buff, 1, 0x100, fp);</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>  <span class="keywordflow">if</span> (fwrite(buff, 1, rn, stderr) != rn)</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>  }</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span> </div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>  fclose(fp);</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>  fprintf(stderr, <span class="stringliteral">"\n\n"</span>);</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>  }</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>  }</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span> <span class="preprocessor">#endif </span><span class="comment">/* __linux__ */</span><span class="preprocessor"></span></div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>  }</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span> }</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#l00531">vm_core.h:531</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#l00760">vm_core.h:760</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 -> Iseq inspect object. </div><div class="ttdef"><b>Definition:</b> <a href="../../dd/d74/iseq_8c_source.html#l01287">iseq.c:1287</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_a0068ed01a16efbb8740e1b0c295b672e"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#a0068ed01a16efbb8740e1b0c295b672e">RARRAY_LEN</a></div><div class="ttdeci">#define RARRAY_LEN(a)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00878">ruby.h:878</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#l00327">error.c:327</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#l00174">nkf.h:174</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#l00834">vm_core.h:834</a></div></div> <div class="ttc" id="vm__backtrace_8c_html_a70289cbb34babceed6243d9471e70e5f"><div class="ttname"><a href="../../d8/d73/vm__backtrace_8c.html#a70289cbb34babceed6243d9471e70e5f">rb_vm_get_sourceline</a></div><div class="ttdeci">int rb_vm_get_sourceline(const rb_control_frame_t *cfp)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d73/vm__backtrace_8c_source.html#l00033">vm_backtrace.c:33</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#l00024">vm_dump.c:24</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#l00028">vm_dump.c:28</a></div></div> <div class="ttc" id="vm__core_8h_html_af2a793a1c756c8b552d8d1f897e63800"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#af2a793a1c756c8b552d8d1f897e63800">VM_FRAME_TYPE_FINISH_P</a></div><div class="ttdeci">#define VM_FRAME_TYPE_FINISH_P(cfp)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00778">vm_core.h:778</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#l00763">vm_core.h:763</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#l00420">vm_dump.c:420</a></div></div> <div class="ttc" id="vm__core_8h_html_af087c881c3c493e3a4e326852e8ed2a9"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#af087c881c3c493e3a4e326852e8ed2a9">RUBY_VM_PREVIOUS_CONTROL_FRAME</a></div><div class="ttdeci">#define RUBY_VM_PREVIOUS_CONTROL_FRAME(cfp)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00825">vm_core.h:825</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#l00835">vm_core.h:835</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_ad07df58de9895cbc33c10f02540d2d4d"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#ad07df58de9895cbc33c10f02540d2d4d">CLASS_OF</a></div><div class="ttdeci">#define CLASS_OF(v)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00440">ruby.h:440</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_a6cdc7dfe8f84777325da08a96ae5f795"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#a6cdc7dfe8f84777325da08a96ae5f795">T_MODULE</a></div><div class="ttdeci">#define T_MODULE</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00480">ruby.h:480</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#l00399">vm_core.h:399</a></div></div> <div class="ttc" id="structrb__control__frame__struct_html_a0e900de65ec08ba64df1125350b4071b"><div class="ttname"><a href="../../de/dc6/structrb__control__frame__struct.html#a0e900de65ec08ba64df1125350b4071b">rb_control_frame_struct::sp</a></div><div class="ttdeci">VALUE * sp</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00447">vm_core.h:447</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#l00220">vm_dump.c:220</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#l00022">vm_dump.c:22</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#l00854">vm_core.h:854</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#l00463">vm_core.h:463</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#l00135">ruby.h:135</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#l00759">vm_core.h:759</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#l00772">vm_core.h:772</a></div></div> <div class="ttc" id="structrb__method__entry__struct_html_a31439bd620e98940410ba59244a85eae"><div class="ttname"><a href="../../d7/db7/structrb__method__entry__struct.html#a31439bd620e98940410ba59244a85eae">rb_method_entry_struct::called_id</a></div><div class="ttdeci">ID called_id</div><div class="ttdef"><b>Definition:</b> <a href="../../db/d0a/method_8h_source.html#l00101">method.h:101</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#l00765">vm_core.h:765</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#l00853">vm_core.h:853</a></div></div> <div class="ttc" id="vm__core_8h_html_a9759f4581d8755c37d9a88a1da185566"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#a9759f4581d8755c37d9a88a1da185566">VM_FRAME_MAGIC_RESCUE</a></div><div class="ttdeci">#define VM_FRAME_MAGIC_RESCUE</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00768">vm_core.h:768</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#l00710">vm_core.h:710</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#l00524">vm_core.h:524</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#l00080">method.h:80</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#l00703">vm_core.h:703</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="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#l00225">vm_core.h:225</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#l00529">vm_core.h:529</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_ac4f895997656c2abd27a29a8b8e982ca"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#ac4f895997656c2abd27a29a8b8e982ca">RB_TYPE_P</a></div><div class="ttdeci">#define RB_TYPE_P(obj, type)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l01672">ruby.h:1672</a></div></div> <div class="ttc" id="structrb__iseq__struct_html_af8bc7dbae6f61d836b5bb9fb50b6cfb8"><div class="ttname"><a href="../../d6/de3/structrb__iseq__struct.html#af8bc7dbae6f61d836b5bb9fb50b6cfb8">rb_iseq_struct::type</a></div><div class="ttdeci">enum rb_iseq_struct::iseq_type type</div></div> <div class="ttc" id="structrb__control__frame__struct_html_aba6bb1166e207f96d81c4fcac16b3119"><div class="ttname"><a href="../../de/dc6/structrb__control__frame__struct.html#aba6bb1166e207f96d81c4fcac16b3119">rb_control_frame_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#l00450">vm_core.h:450</a></div></div> <div class="ttc" id="openssl_2conftest_8c_html_ad2c584e6472d5514c2fa94aea1697bb7"><div class="ttname"><a href="../../d8/dac/openssl_2conftest_8c.html#ad2c584e6472d5514c2fa94aea1697bb7">t</a></div><div class="ttdeci">int t(void)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/dac/openssl_2conftest_8c_source.html#l00013">conftest.c:13</a></div></div> <div class="ttc" id="intern_8h_html_a006647827acc7cce9e940e5f7fa3a1b8"><div class="ttname"><a href="../../db/d2e/intern_8h.html#a006647827acc7cce9e940e5f7fa3a1b8">rb_class_name</a></div><div class="ttdeci">VALUE rb_class_name(VALUE)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/d2a/variable_8c_source.html#l00391">variable.c:391</a></div></div> <div class="ttc" id="vm__exec_8c_html"><div class="ttname"><a href="../../df/d38/vm__exec_8c.html">val</a></div><div class="ttdeci">#define val</div></div> <div class="ttc" id="structrb__control__frame__struct_html_aa229bdd30dd8f935df8d550d7268ec1e"><div class="ttname"><a href="../../de/dc6/structrb__control__frame__struct.html#aa229bdd30dd8f935df8d550d7268ec1e">rb_control_frame_struct::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#l00453">vm_core.h:453</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#l00274">vm_core.h:274</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="structrb__control__frame__struct_html_a06a5a5485839fd92e3e274868f525bb2"><div class="ttname"><a href="../../de/dc6/structrb__control__frame__struct.html#a06a5a5485839fd92e3e274868f525bb2">rb_control_frame_struct::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#l00448">vm_core.h:448</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#l00131">ruby.c:131</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#l00761">vm_core.h:761</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#l00713">vm_dump.c:713</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#l00498">ruby.h:498</a></div></div> <div class="ttc" id="intern_8h_html_a03acd62c0b1edebbe1d61f957c19b7ac"><div class="ttname"><a href="../../db/d2e/intern_8h.html#a03acd62c0b1edebbe1d61f957c19b7ac">rb_str_new2</a></div><div class="ttdeci">#define rb_str_new2</div><div class="ttdef"><b>Definition:</b> <a href="../../db/d2e/intern_8h_source.html#l00840">intern.h:840</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#l00161">ruby.h:161</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#l00328">vm_dump.c:328</a></div></div> <div class="ttc" id="structrb__control__frame__struct_html"><div class="ttname"><a href="../../de/dc6/structrb__control__frame__struct.html">rb_control_frame_struct</a></div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00445">vm_core.h:445</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#l00175">nkf.h:175</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#l00700">vm_core.h:700</a></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#l00376">vm_core.h:376</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#l00141">vm_dump.c:141</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#l04308">nkf.c:4308</a></div></div> <div class="ttc" id="internal_8h_html"><div class="ttname"><a href="../../db/dde/internal_8h.html">internal.h</a></div></div> <div class="ttc" id="structrb__iseq__location__struct_html_a155c8f31e825f44e7fa41601ff149357"><div class="ttname"><a href="../../dd/dc8/structrb__iseq__location__struct.html#a155c8f31e825f44e7fa41601ff149357">rb_iseq_location_struct::path</a></div><div class="ttdeci">const VALUE path</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00197">vm_core.h:197</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#l00781">vm_core.h:781</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#l00427">ruby.h:427</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#l00103">win32.h:103</a></div></div> <div class="ttc" id="tcltklib_8c_html_ac765329451135abec74c45e1897abf26"><div class="ttname"><a href="../../d5/d9d/tcltklib_8c.html#ac765329451135abec74c45e1897abf26">type</a></div><div class="ttdeci">int type</div><div class="ttdef"><b>Definition:</b> <a href="../../d5/d9d/tcltklib_8c_source.html#l00112">tcltklib.c:112</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#l00766">vm_core.h:766</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#l00226">vm_core.h:226</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#l00502">ruby.h:502</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="vm__insnhelper_8c_html_ad8c4d3e68920abf7fe2a84cffde3be1b"><div class="ttname"><a href="../../d0/db2/vm__insnhelper_8c.html#ad8c4d3e68920abf7fe2a84cffde3be1b">vm_base_ptr</a></div><div class="ttdeci">static VALUE * vm_base_ptr(rb_control_frame_t *cfp)</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/db2/vm__insnhelper_8c_source.html#l00999">vm_insnhelper.c:999</a></div></div> <div class="ttc" id="structrb__iseq__struct_html_acf13c2a9990e88276a7223a4881302d6"><div class="ttname"><a href="../../d6/de3/structrb__iseq__struct.html#acf13c2a9990e88276a7223a4881302d6">rb_iseq_struct::location</a></div><div class="ttdeci">rb_iseq_location_t location</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00223">vm_core.h:223</a></div></div> <div class="ttc" id="vm__dump_8c_html_a410ecb917b379a91325deaea5765d7ee"><div class="ttname"><a href="../../dd/dd7/vm__dump_8c.html#a410ecb917b379a91325deaea5765d7ee">rb_vmdebug_env_dump_raw</a></div><div class="ttdeci">void rb_vmdebug_env_dump_raw(rb_env_t *env, VALUE *ep)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/dd7/vm__dump_8c_source.html#l00180">vm_dump.c:180</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#l00047">vm_opts.h:47</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#l00541">ruby.h:541</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#l00762">vm_core.h:762</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#l00764">vm_core.h:764</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_a3f0e4e2b6d073369cc1c2ddde00b13bb"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#a3f0e4e2b6d073369cc1c2ddde00b13bb">RSTRING_PTR</a></div><div class="ttdeci">#define RSTRING_PTR(str)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00845">ruby.h:845</a></div></div> <div class="ttc" id="encoding_8c_html_a439227feff9d7f55384e8780cfc2eb82"><div class="ttname"><a href="../../d5/db5/encoding_8c.html#a439227feff9d7f55384e8780cfc2eb82">size</a></div><div class="ttdeci">int size</div><div class="ttdef"><b>Definition:</b> <a href="../../d5/db5/encoding_8c_source.html#l00049">encoding.c:49</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#l00767">vm_core.h:767</a></div></div> <div class="ttc" id="vm__dump_8c_html_a087782b21c9f1e04c5eef8185586542d"><div class="ttname"><a href="../../dd/dd7/vm__dump_8c.html#a087782b21c9f1e04c5eef8185586542d">rb_print_backtrace</a></div><div class="ttdeci">void rb_print_backtrace(void)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/dd7/vm__dump_8c_source.html#l00685">vm_dump.c:685</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#l00701">vm_core.h:701</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_aedbbba284826af7e4c26566a410cd848"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#aedbbba284826af7e4c26566a410cd848">RARRAY_AREF</a></div><div class="ttdeci">#define RARRAY_AREF(a, i)</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00901">ruby.h:901</a></div></div> <div class="ttc" id="structrb__control__frame__struct_html_a596de17ddc9fb186769848a9f27f3510"><div class="ttname"><a href="../../de/dc6/structrb__control__frame__struct.html#a596de17ddc9fb186769848a9f27f3510">rb_control_frame_struct::pc</a></div><div class="ttdeci">VALUE * pc</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00446">vm_core.h:446</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#l00100">method.h:100</a></div></div> <div class="ttc" id="structrb__control__frame__struct_html_ab8ddfbe44ad9a3582069c9fcf5211afc"><div class="ttname"><a href="../../de/dc6/structrb__control__frame__struct.html#ab8ddfbe44ad9a3582069c9fcf5211afc">rb_control_frame_struct::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#l00455">vm_core.h:455</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#l00349">vm_dump.c:349</a></div></div> <div class="ttc" id="structrb__control__frame__struct_html_a98749000ef85777099b645d7d755275d"><div class="ttname"><a href="../../de/dc6/structrb__control__frame__struct.html#a98749000ef85777099b645d7d755275d">rb_control_frame_struct::ep</a></div><div class="ttdeci">VALUE * ep</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00452">vm_core.h:452</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_a22a8c2a4bbaae9b68f65c9bb92fd4e39"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#a22a8c2a4bbaae9b68f65c9bb92fd4e39">T_STRING</a></div><div class="ttdeci">#define T_STRING</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00482">ruby.h:482</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#l00239">vm_core.h:239</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#l00472">vm_core.h:472</a></div></div> <div class="ttc" id="ruby_2ruby_8h_html_ad04c63d175774c6d6e7dfaf0f0a982c9"><div class="ttname"><a href="../../de/de6/ruby_2ruby_8h.html#ad04c63d175774c6d6e7dfaf0f0a982c9">T_CLASS</a></div><div class="ttdeci">#define T_CLASS</div><div class="ttdef"><b>Definition:</b> <a href="../../de/de6/ruby_2ruby_8h_source.html#l00478">ruby.h:478</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#l00206">vm_dump.c:206</a></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#l00348">vm_core.h:348</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#l00173">vm_dump.c:173</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#l00206">vm_core.h:206</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#l17271">ripper.c:17271</a></div></div> <div class="ttc" id="structrb__thread__struct_html_a1f263d7b7ee19fc82ea14d83ed1dc7bd"><div class="ttname"><a href="../../d2/d66/structrb__thread__struct.html#a1f263d7b7ee19fc82ea14d83ed1dc7bd">rb_thread_struct::stack_size</a></div><div class="ttdeci">size_t stack_size</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00530">vm_core.h:530</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#l00470">object.c:470</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#l00800">vm_core.h:800</a></div></div> <div class="ttc" id="vm__dump_8c_html_ad5c2b08cb73028cde0c86d29d6011692"><div class="ttname"><a href="../../dd/dd7/vm__dump_8c.html#ad5c2b08cb73028cde0c86d29d6011692">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, VALUE *_pc)</div><div class="ttdef"><b>Definition:</b> <a href="../../dd/dd7/vm__dump_8c_source.html#l00357">vm_dump.c:357</a></div></div> <div class="ttc" id="internal_8h_html_a502328e0566286728cffab0fce8b1d98"><div class="ttname"><a href="../../db/dde/internal_8h.html#a502328e0566286728cffab0fce8b1d98">rb_backtrace_print_as_bugreport</a></div><div class="ttdeci">void rb_backtrace_print_as_bugreport(void)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d73/vm__backtrace_8c_source.html#l00766">vm_backtrace.c:766</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="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#l00218">vsnprintf.c:218</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#l00165">ruby.h:165</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#l00102">_sdbm.c:102</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#l00428">ruby.h:428</a></div></div> <div class="ttc" id="structrb__iseq__location__struct_html_a203f0f52988314c40d65dd137f50fcdd"><div class="ttname"><a href="../../dd/dc8/structrb__iseq__location__struct.html#a203f0f52988314c40d65dd137f50fcdd">rb_iseq_location_struct::label</a></div><div class="ttdeci">const VALUE label</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00200">vm_core.h:200</a></div></div> <div class="ttc" id="vm__core_8h_html_aec678927729c3dcca12b2fae241158b0"><div class="ttname"><a href="../../d8/d32/vm__core_8h.html#aec678927729c3dcca12b2fae241158b0">GET_THREAD</a></div><div class="ttdeci">static rb_thread_t * GET_THREAD(void)</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00929">vm_core.h:929</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#l00615">win32ole.c:615</a></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__debug_8h_html_a1baecad7f27ccf1689612054ecf6a397"><div class="ttname"><a href="../../d5/d8c/vm__debug_8h.html#a1baecad7f27ccf1689612054ecf6a397">bp</a></div><div class="ttdeci">#define bp()</div><div class="ttdef"><b>Definition:</b> <a href="../../d5/d8c/vm__debug_8h_source.html#l00025">vm_debug.h:25</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#l00385">vm_dump.c:385</a></div></div> <div class="ttc" id="vm__dump_8c_html_ad6a80f86a2270267d54d25899f51b98a"><div class="ttname"><a href="../../dd/dd7/vm__dump_8c.html#ad6a80f86a2270267d54d25899f51b98a">LIMITED_NAME_LENGTH</a></div><div class="ttdeci">#define LIMITED_NAME_LENGTH(s)</div></div> <div class="ttc" id="structrb__block__struct_html_a4b6a1d10dd8dc1167703ec7999b0fbf0"><div class="ttname"><a href="../../da/dc0/structrb__block__struct.html#a4b6a1d10dd8dc1167703ec7999b0fbf0">rb_block_struct::ep</a></div><div class="ttdeci">VALUE * ep</div><div class="ttdef"><b>Definition:</b> <a href="../../d8/d32/vm__core_8h_source.html#l00465">vm_core.h:465</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#l00713">vm_core.h:713</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#l00922">vm_core.h:922</a></div></div> </div><!-- fragment --></div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="../../doxygen.png" alt="doxygen"/> </a> 1.8.14 </small></address> </body> </html>