谢俞 發表於 2023-6-19 00:00:00

Linux如何查看进程栈信息示例

<p>
        今天在Linux上调试程序程序的时候发现有时候程序会莫名其妙的hang住,于是就想能不能找到当时程序有那些线程,都在做什么。找了一下linux命令,还真可以满足我的需求。下面看一个小例子。</p>
<p>
        先准备一段程序,为了简单起见这里使用python来写,其中创建了两个线程来执行各自的任务。</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterpy" id="highlighter_346292">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                        <div class="line number5 index4 alt2">
                                                                5</div>
                                                        <div class="line number6 index5 alt1">
                                                                6</div>
                                                        <div class="line number7 index6 alt2">
                                                                7</div>
                                                        <div class="line number8 index7 alt1">
                                                                8</div>
                                                        <div class="line number9 index8 alt2">
                                                                9</div>
                                                        <div class="line number10 index9 alt1">
                                                                10</div>
                                                        <div class="line number11 index10 alt2">
                                                                11</div>
                                                        <div class="line number12 index11 alt1">
                                                                12</div>
                                                        <div class="line number13 index12 alt2">
                                                                13</div>
                                                        <div class="line number14 index13 alt1">
                                                                14</div>
                                                        <div class="line number15 index14 alt2">
                                                                15</div>
                                                        <div class="line number16 index15 alt1">
                                                                16</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="py keyword">import</code> <code class="py plain">threading</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="py keyword">import</code> <code class="py plain">time</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="py keyword">def</code> <code class="py plain">test1():</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="py spaces">  </code><code class="py keyword">while</code><code class="py plain">(</code><code class="py color1">True</code><code class="py plain">):</code>
</div>
                                                                <div class="line number5 index4 alt2">
                                                                        <code class="py spaces">    </code><code class="py plain">time.sleep(</code><code class="py value">1</code><code class="py plain">)</code>
</div>
                                                                <div class="line number6 index5 alt1">
                                                                        <code class="py spaces">    </code><code class="py functions">print</code> <code class="py string">'test1'</code>
</div>
                                                                <div class="line number7 index6 alt2">
                                                                         </div>
                                                                <div class="line number8 index7 alt1">
                                                                        <code class="py keyword">def</code> <code class="py plain">test2():</code>
</div>
                                                                <div class="line number9 index8 alt2">
                                                                        <code class="py spaces">  </code><code class="py keyword">while</code><code class="py plain">(</code><code class="py color1">True</code><code class="py plain">):</code>
</div>
                                                                <div class="line number10 index9 alt1">
                                                                        <code class="py spaces">    </code><code class="py plain">time.sleep(</code><code class="py value">1</code><code class="py plain">)</code>
</div>
                                                                <div class="line number11 index10 alt2">
                                                                        <code class="py spaces">    </code><code class="py functions">print</code> <code class="py string">'test2'</code>
</div>
                                                                <div class="line number12 index11 alt1">
                                                                        <code class="py plain">t1 </code><code class="py keyword">=</code> <code class="py plain">threading.Thread(target</code><code class="py keyword">=</code><code class="py plain">test1, args</code><code class="py keyword">=</code><code class="py plain">())</code>
</div>
                                                                <div class="line number13 index12 alt2">
                                                                        <code class="py plain">t2 </code><code class="py keyword">=</code> <code class="py plain">threading.Thread(target</code><code class="py keyword">=</code><code class="py plain">test2, args</code><code class="py keyword">=</code><code class="py plain">())</code>
</div>
                                                                <div class="line number14 index13 alt1">
                                                                        <code class="py plain">t1.start()</code>
</div>
                                                                <div class="line number15 index14 alt2">
                                                                        <code class="py plain">t2.start()</code>
</div>
                                                                <div class="line number16 index15 alt1">
                                                                        <code class="py plain">time.sleep(</code><code class="py value">12345</code><code class="py plain">)</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        然后运行这个程序</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterplain" id="highlighter_34980">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="plain plain">$ python test.py</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        先使用 “pstree -apl ” 查看进程结构</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterplain" id="highlighter_101497">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="plain plain">$ pstree -apl 26855</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="plain plain">python,26855 test.py</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="plain spaces"> </code><code class="plain plain">|-{python},26858</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="plain spaces"> </code><code class="plain plain">|-{python},26859</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        然后使用 “ps -Lf ” 查看线程信息</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterplain" id="highlighter_564046">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                        <div class="line number5 index4 alt2">
                                                                5</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="plain plain">$ ps -Lf 26855</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="plain plain">UID    PID PPID  LWP C NLWP STIME TTY   STAT  TIME CMD</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="plain plain">jhadmin 26855 25902 26855 0  3 15:15 pts/5  Sl+  0:00 python test.py</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="plain plain">jhadmin 26855 25902 26858 0  3 15:15 pts/5  Sl+  0:00 python test.py</code>
</div>
                                                                <div class="line number5 index4 alt2">
                                                                        <code class="plain plain">jhadmin 26855 25902 26859 0  3 15:15 pts/5  Sl+  0:00 python test.py</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        最后,可以使用 “pstack ” 查看线程的详细信息,如下:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterplain" id="highlighter_932123">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                        <div class="line number3 index2 alt2">
                                                                3</div>
                                                        <div class="line number4 index3 alt1">
                                                                4</div>
                                                        <div class="line number5 index4 alt2">
                                                                5</div>
                                                        <div class="line number6 index5 alt1">
                                                                6</div>
                                                        <div class="line number7 index6 alt2">
                                                                7</div>
                                                        <div class="line number8 index7 alt1">
                                                                8</div>
                                                        <div class="line number9 index8 alt2">
                                                                9</div>
                                                        <div class="line number10 index9 alt1">
                                                                10</div>
                                                        <div class="line number11 index10 alt2">
                                                                11</div>
                                                        <div class="line number12 index11 alt1">
                                                                12</div>
                                                        <div class="line number13 index12 alt2">
                                                                13</div>
                                                        <div class="line number14 index13 alt1">
                                                                14</div>
                                                        <div class="line number15 index14 alt2">
                                                                15</div>
                                                        <div class="line number16 index15 alt1">
                                                                16</div>
                                                        <div class="line number17 index16 alt2">
                                                                17</div>
                                                        <div class="line number18 index17 alt1">
                                                                18</div>
                                                        <div class="line number19 index18 alt2">
                                                                19</div>
                                                        <div class="line number20 index19 alt1">
                                                                20</div>
                                                        <div class="line number21 index20 alt2">
                                                                21</div>
                                                        <div class="line number22 index21 alt1">
                                                                22</div>
                                                        <div class="line number23 index22 alt2">
                                                                23</div>
                                                        <div class="line number24 index23 alt1">
                                                                24</div>
                                                        <div class="line number25 index24 alt2">
                                                                25</div>
                                                        <div class="line number26 index25 alt1">
                                                                26</div>
                                                        <div class="line number27 index26 alt2">
                                                                27</div>
                                                        <div class="line number28 index27 alt1">
                                                                28</div>
                                                        <div class="line number29 index28 alt2">
                                                                29</div>
                                                        <div class="line number30 index29 alt1">
                                                                30</div>
                                                        <div class="line number31 index30 alt2">
                                                                31</div>
                                                        <div class="line number32 index31 alt1">
                                                                32</div>
                                                        <div class="line number33 index32 alt2">
                                                                33</div>
                                                        <div class="line number34 index33 alt1">
                                                                34</div>
                                                        <div class="line number35 index34 alt2">
                                                                35</div>
                                                        <div class="line number36 index35 alt1">
                                                                36</div>
                                                        <div class="line number37 index36 alt2">
                                                                37</div>
                                                        <div class="line number38 index37 alt1">
                                                                38</div>
                                                        <div class="line number39 index38 alt2">
                                                                39</div>
                                                        <div class="line number40 index39 alt1">
                                                                40</div>
                                                        <div class="line number41 index40 alt2">
                                                                41</div>
                                                        <div class="line number42 index41 alt1">
                                                                42</div>
                                                        <div class="line number43 index42 alt2">
                                                                43</div>
                                                        <div class="line number44 index43 alt1">
                                                                44</div>
                                                        <div class="line number45 index44 alt2">
                                                                45</div>
                                                        <div class="line number46 index45 alt1">
                                                                46</div>
                                                        <div class="line number47 index46 alt2">
                                                                47</div>
                                                        <div class="line number48 index47 alt1">
                                                                48</div>
                                                        <div class="line number49 index48 alt2">
                                                                49</div>
                                                        <div class="line number50 index49 alt1">
                                                                50</div>
                                                        <div class="line number51 index50 alt2">
                                                                51</div>
                                                        <div class="line number52 index51 alt1">
                                                                52</div>
                                                        <div class="line number53 index52 alt2">
                                                                53</div>
                                                        <div class="line number54 index53 alt1">
                                                                54</div>
                                                        <div class="line number55 index54 alt2">
                                                                55</div>
                                                        <div class="line number56 index55 alt1">
                                                                56</div>
                                                        <div class="line number57 index56 alt2">
                                                                57</div>
                                                        <div class="line number58 index57 alt1">
                                                                58</div>
                                                        <div class="line number59 index58 alt2">
                                                                59</div>
                                                        <div class="line number60 index59 alt1">
                                                                60</div>
                                                        <div class="line number61 index60 alt2">
                                                                61</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="plain plain">$ pstack 26855</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="plain plain">Thread 3 (Thread 0x7f8a344f2700 (LWP 26858)):</code>
</div>
                                                                <div class="line number3 index2 alt2">
                                                                        <code class="plain plain">#0 0x00007f8a3b5387a3 in select () from /lib64/libc.so.6</code>
</div>
                                                                <div class="line number4 index3 alt1">
                                                                        <code class="plain plain">#1 0x00007f8a344f5070 in time_sleep () from /usr/lib64/python2.7/lib-dynload/timemodule.so</code>
</div>
                                                                <div class="line number5 index4 alt2">
                                                                        <code class="plain plain">#2 0x00007f8a3c215af0 in PyEval_EvalFrameEx () from /lib64/libpython2.7.so.1.0</code>
</div>
                                                                <div class="line number6 index5 alt1">
                                                                        <code class="plain plain">#3 0x00007f8a3c217e3d in PyEval_EvalCodeEx () from /lib64/libpython2.7.so.1.0</code>
</div>
                                                                <div class="line number7 index6 alt2">
                                                                        <code class="plain plain">#4 0x00007f8a3c1a188d in function_call () from /lib64/libpython2.7.so.1.0</code>
</div>
                                                                <div class="line number8 index7 alt1">
                                                                        <code class="plain plain">#5 0x00007f8a3c17c8e3 in PyObject_Call () from /lib64/libpython2.7.so.1.0</code>
</div>
                                                                <div class="line number9 index8 alt2">
                                                                        <code class="plain plain">#6 0x00007f8a3c2104fd in PyEval_EvalFrameEx () from /lib64/libpython2.7.so.1.0</code>
</div>
                                                                <div class="line number10 index9 alt1">
                                                                        <code class="plain plain">#7 0x00007f8a3c2154bd in PyEval_EvalFrameEx () from /lib64/libpython2.7.so.1.0</code>
</div>
                                                                <div class="line number11 index10 alt2">
                                                                        <code class="plain plain">#8 0x00007f8a3c2154bd in PyEval_EvalFrameEx () from /lib64/libpython2.7.so.1.0</code>
</div>
                                                                <div class="line number12 index11 alt1">
                                                                        <code class="plain plain">#9 0x00007f8a3c217e3d in PyEval_EvalCodeEx () from /lib64/libpython2.7.so.1.0</code>
</div>
                                                                <div class="line number13 index12 alt2">
                                                                        <code class="plain plain">#10 0x00007f8a3c1a1798 in function_call () from /lib64/libpython2.7.so.1.0</code>
</div>
                                                                <div class="line number14 index13 alt1">
                                                                        <code class="plain plain">#11 0x00007f8a3c17c8e3 in PyObject_Call () from /lib64/libpython2.7.so.1.0</code>
</div>
                                                                <div class="line number15 index14 alt2">
                                                                        <code class="plain plain">#12 0x00007f8a3c18b8d5 in instancemethod_call () from /lib64/libpython2.7.so.1.0</code>
</div>
                                                                <div class="line number16 index15 alt1">
                                                                        <code class="plain plain">#13 0x00007f8a3c17c8e3 in PyObject_Call () from /lib64/libpython2.7.so.1.0</code>
</div>
                                                                <div class="line number17 index16 alt2">
                                                                        <code class="plain plain">#14 0x00007f8a3c20e6f7 in PyEval_CallObjectWithKeywords () from /lib64/libpython2.7.so.1.0</code>
</div>
                                                                <div class="line number18 index17 alt1">
                                                                        <code class="plain plain">#15 0x00007f8a3c2465c2 in t_bootstrap () from /lib64/libpython2.7.so.1.0</code>
</div>
                                                                <div class="line number19 index18 alt2">
                                                                        <code class="plain plain">#16 0x00007f8a3bf1ce25 in start_thread () from /lib64/libpthread.so.0</code>
</div>
                                                                <div class="line number20 index19 alt1">
                                                                        <code class="plain plain">#17 0x00007f8a3b54134d in clone () from /lib64/libc.so.6</code>
</div>
                                                                <div class="line number21 index20 alt2">
                                                                        <code class="plain plain">Thread 2 (Thread 0x7f8a33cf1700 (LWP 26859)):</code>
</div>
                                                                <div class="line number22 index21 alt1">
                                                                        <code class="plain plain">#0 0x00007f8a3b5387a3 in select () from /lib64/libc.so.6</code>
</div>
                                                                <div class="line number23 index22 alt2">
                                                                        <code class="plain plain">#1 0x00007f8a344f5070 in time_sleep () from /usr/lib64/python2.7/lib-dynload/timemodule.so</code>
</div>
                                                                <div class="line number24 index23 alt1">
                                                                        <code class="plain plain">#2 0x00007f8a3c215af0 in PyEval_EvalFrameEx () from /lib64/libpython2.7.so.1.0</code>
</div>
                                                                <div class="line number25 index24 alt2">
                                                                        <code class="plain plain">#3 0x00007f8a3c217e3d in PyEval_EvalCodeEx () from /lib64/libpython2.7.so.1.0</code>
</div>
                                                                <div class="line number26 index25 alt1">
                                                                        <code class="plain plain">#4 0x00007f8a3c1a188d in function_call () from /lib64/libpython2.7.so.1.0                                              </code>
</div>
                                                                <div class="line number27 index26 alt2">
                                                                        <code class="plain plain">#5 0x00007f8a3c17c8e3 in PyObject_Call () from /lib64/libpython2.7.so.1.0                                              </code>
</div>
                                                                <div class="line number28 index27 alt1">
                                                                        <code class="plain plain">#6 0x00007f8a3c2104fd in PyEval_EvalFrameEx () from /lib64/libpython2.7.so.1.0                                           </code>
</div>
                                                                <div class="line number29 index28 alt2">
                                                                        <code class="plain plain">#7 0x00007f8a3c2154bd in PyEval_EvalFrameEx () from /lib64/libpython2.7.so.1.0                                           </code>
</div>
                                                                <div class="line number30 index29 alt1">
                                                                        <code class="plain plain">#8 0x00007f8a3c2154bd in PyEval_EvalFrameEx () from /lib64/libpython2.7.so.1.0                                           </code>
</div>
                                                                <div class="line number31 index30 alt2">
                                                                        <code class="plain plain">#9 0x00007f8a3c217e3d in PyEval_EvalCodeEx () from /lib64/libpython2.7.so.1.0</code>
</div>
                                                                <div class="line number32 index31 alt1">
                                                                        <code class="plain plain">#10 0x00007f8a3c1a1798 in function_call () from /lib64/libpython2.7.so.1.0</code>
</div>
                                                                <div class="line number33 index32 alt2">
                                                                        <code class="plain plain">#11 0x00007f8a3c17c8e3 in PyObject_Call () from /lib64/libpython2.7.so.1.0</code>
</div>
                                                                <div class="line number34 index33 alt1">
                                                                        <code class="plain plain">#12 0x00007f8a3c18b8d5 in instancemethod_call () from /lib64/libpython2.7.so.1.0</code>
</div>
                                                                <div class="line number35 index34 alt2">
                                                                        <code class="plain plain">#13 0x00007f8a3c17c8e3 in PyObject_Call () from /lib64/libpython2.7.so.1.0</code>
</div>
                                                                <div class="line number36 index35 alt1">
                                                                        <code class="plain plain">#14 0x00007f8a3c20e6f7 in PyEval_CallObjectWithKeywords () from /lib64/libpython2.7.so.1.0</code>
</div>
                                                                <div class="line number37 index36 alt2">
                                                                        <code class="plain plain">#15 0x00007f8a3c2465c2 in t_bootstrap () from /lib64/libpython2.7.so.1.0</code>
</div>
                                                                <div class="line number38 index37 alt1">
                                                                        <code class="plain plain">#16 0x00007f8a3bf1ce25 in start_thread () from /lib64/libpthread.so.0</code>
</div>
                                                                <div class="line number39 index38 alt2">
                                                                        <code class="plain plain">#17 0x00007f8a3b54134d in clone () from /lib64/libc.so.6</code>
</div>
                                                                <div class="line number40 index39 alt1">
                                                                        <code class="plain plain">Thread 1 (Thread 0x7f8a3c6f3740 (LWP 26855)):</code>
</div>
                                                                <div class="line number41 index40 alt2">
                                                                        <code class="plain plain">#0 0x00007f8a3bf22a0b in do_futex_wait.constprop.1 () from /lib64/libpthread.so.0</code>
</div>
                                                                <div class="line number42 index41 alt1">
                                                                        <code class="plain plain">#1 0x00007f8a3bf22a9f in __new_sem_wait_slow.constprop.0 () from /lib64/libpthread.so.0</code>
</div>
                                                                <div class="line number43 index42 alt2">
                                                                        <code class="plain plain">#2 0x00007f8a3bf22b3b in sem_wait@@GLIBC_2.2.5 () from /lib64/libpthread.so.0</code>
</div>
                                                                <div class="line number44 index43 alt1">
                                                                        <code class="plain plain">#3 0x00007f8a3c242535 in PyThread_acquire_lock () from /lib64/libpython2.7.so.1.0</code>
</div>
                                                                <div class="line number45 index44 alt2">
                                                                        <code class="plain plain">#4 0x00007f8a3c2461c2 in lock_PyThread_acquire_lock () from /lib64/libpython2.7.so.1.0</code>
</div>
                                                                <div class="line number46 index45 alt1">
                                                                        <code class="plain plain">#5 0x00007f8a3c215af0 in PyEval_EvalFrameEx () from /lib64/libpython2.7.so.1.0</code>
</div>
                                                                <div class="line number47 index46 alt2">
                                                                        <code class="plain plain">#6 0x00007f8a3c217e3d in PyEval_EvalCodeEx () from /lib64/libpython2.7.so.1.0</code>
</div>
                                                                <div class="line number48 index47 alt1">
                                                                        <code class="plain plain">#7 0x00007f8a3c21533c in PyEval_EvalFrameEx () from /lib64/libpython2.7.so.1.0</code>
</div>
                                                                <div class="line number49 index48 alt2">
                                                                        <code class="plain plain">#8 0x00007f8a3c217e3d in PyEval_EvalCodeEx () from /lib64/libpython2.7.so.1.0</code>
</div>
                                                                <div class="line number50 index49 alt1">
                                                                        <code class="plain plain">#9 0x00007f8a3c21533c in PyEval_EvalFrameEx () from /lib64/libpython2.7.so.1.0</code>
</div>
                                                                <div class="line number51 index50 alt2">
                                                                        <code class="plain plain">#10 0x00007f8a3c217e3d in PyEval_EvalCodeEx () from /lib64/libpython2.7.so.1.0</code>
</div>
                                                                <div class="line number52 index51 alt1">
                                                                        <code class="plain plain">#11 0x00007f8a3c1a1798 in function_call () from /lib64/libpython2.7.so.1.0</code>
</div>
                                                                <div class="line number53 index52 alt2">
                                                                        <code class="plain plain">#12 0x00007f8a3c17c8e3 in PyObject_Call () from /lib64/libpython2.7.so.1.0</code>
</div>
                                                                <div class="line number54 index53 alt1">
                                                                        <code class="plain plain">#13 0x00007f8a3c18b8d5 in instancemethod_call () from /lib64/libpython2.7.so.1.0</code>
</div>
                                                                <div class="line number55 index54 alt2">
                                                                        <code class="plain plain">#14 0x00007f8a3c17c8e3 in PyObject_Call () from /lib64/libpython2.7.so.1.0</code>
</div>
                                                                <div class="line number56 index55 alt1">
                                                                        <code class="plain plain">#15 0x00007f8a3c17c9c5 in call_function_tail () from /lib64/libpython2.7.so.1.0</code>
</div>
                                                                <div class="line number57 index56 alt2">
                                                                        <code class="plain plain">#16 0x00007f8a3c17ccfb in PyObject_CallMethod () from /lib64/libpython2.7.so.1.0</code>
</div>
                                                                <div class="line number58 index57 alt1">
                                                                        <code class="plain plain">#17 0x00007f8a3c232f29 in Py_Finalize () from /lib64/libpython2.7.so.1.0</code>
</div>
                                                                <div class="line number59 index58 alt2">
                                                                        <code class="plain plain">#18 0x00007f8a3c244325 in Py_Main () from /lib64/libpython2.7.so.1.0</code>
</div>
                                                                <div class="line number60 index59 alt1">
                                                                        <code class="plain plain">#19 0x00007f8a3b46ac05 in __libc_start_main () from /lib64/libc.so.6</code>
</div>
                                                                <div class="line number61 index60 alt2">
                                                                        <code class="plain plain">#20 0x000000000040071e in _start ()</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        这里多说一句,如果要看java程序的栈信息,可以使用 “kill -3 ” 来查看,比如:</p>
<div class="jb51code">
        <div>
                <div class="syntaxhighlighterplain" id="highlighter_83232">
                        <div class="toolbar">
                                <span>?</span>
</div>
                        <table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
                                                        <div class="line number1 index0 alt2">
                                                                1</div>
                                                        <div class="line number2 index1 alt1">
                                                                2</div>
                                                </td>
                                                <td class="code">
                                                        <div class="container">
                                                                <div class="line number1 index0 alt2">
                                                                        <code class="plain plain">$ nohub java Test &gt; test.out &amp;</code>
</div>
                                                                <div class="line number2 index1 alt1">
                                                                        <code class="plain plain">$ kill -3 &lt;pid&gt;</code>
</div>
                                                        </div>
                                                </td>
                                        </tr></tbody></table>
</div>
        </div>
        <div class="codetool" id="codetool">
                <div class="code_n">
                        <textarea></textarea>
</div>
        </div>
</div>
<p>
        以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。</p>
<p>
        原文链接:https://blog.csdn.net/kongxx/article/details/79662490</p>
頁: [1]
查看完整版本: Linux如何查看进程栈信息示例