识别多线程程序中的崩溃 - 如何?

时间:2012-01-25 16:06:08

标签: linux gdb embedded-linux

我在使用GDB进行调试时很安静,所以我的问题与调试符号不可用无关:)。我正在处理mutti线程程序中的崩溃。在崩溃之前,我在GDB中看到了以下日志,而backtrace并没有给我太多信息。信息线程再次显示我没有在应用程序空间下运行。关于如何解决这个问题的任何建议。

[New Thread 1755]
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1755]
warning: GDB can't find the start of the function at 0x2ac17638.

    GDB is unable to find the start of the function at 0x2ac17638
and thus can't determine the size of that function's stack frame.
This means that GDB may be unable to access that stack frame, or
the frames below it.
    This problem is most likely caused by an invalid program counter or
stack pointer.
    However, if you think GDB should simply search farther back
from 0x2ac17638 for code which looks like the beginning of a
function, you can increase the range of the search using the `set
heuristic-fence-post' command.
0x2ac17638 in ?? ()
(gdb) bt
#0  0x2ac17638 in ?? ()
(gdb) info thread
[New Thread 1737]
[New Thread 1738]
[New Thread 1739]
[New Thread 1740]
[New Thread 1741]
[New Thread 1742]
[New Thread 1744]
[New Thread 1745]
[New Thread 1746]
[New Thread 1747]
[New Thread 1748]
[New Thread 1749]
[New Thread 1750]
[New Thread 1751]
[New Thread 1752]
[New Thread 1753]
[New Thread 1754]
[New Thread 1756]
  20 Thread 1756  0x2aac1068 in ?? ()
  19 Thread 1754  0x2abd62b4 in ?? ()
  18 Thread 1753  0x2abd62b4 in ?? ()
  17 Thread 1752  0x2aabda58 in ?? ()
  16 Thread 1751  0x2abd62b4 in ?? ()
  15 Thread 1750  0x2aabda58 in ?? ()
  14 Thread 1749  0x2aabda58 in ?? ()
  13 Thread 1748  0x2aabda58 in ?? ()
  12 Thread 1747  0x2aabfb44 in ?? ()
  11 Thread 1746  0x2aabfb44 in ?? ()
  10 Thread 1745  0x2aabfb44 in ?? ()
  9 Thread 1744  0x2aabfb44 in ?? ()
  8 Thread 1742  0x2aabfb44 in ?? ()
  7 Thread 1741  0x2aac15dc in ?? ()
  6 Thread 1740  0x2abd62b4 in ?? ()
  5 Thread 1739  0x2abd62b4 in ?? ()
  4 Thread 1738  0x2abd62b4 in ?? ()
  3 Thread 1737  0x2aabfb44 in ?? ()
* 2 Thread 1755  0x2ac17638 in ?? ()
  1 Thread 1736  0x2abd56bc in ?? ()
warning: GDB can't find the start of the function at 0x2ac17638.

P.S。它是一个基于MIPS的嵌入式Linux,这个问题很少可以重现,但是在启动时。

0 个答案:

没有答案