Выявить сбой в многопоточных программах - Как? - PullRequest
1 голос
/ 25 января 2012

У меня небольшой опыт отладки с помощью GDB, поэтому мой вопрос не связан с недоступностью символов отладки :).Я имею дело со сбоем в многопоточной программе.Непосредственно перед сбоем я вижу следующие журналы в GDB, и обратная трассировка не дает мне много информации.Информационная ветка снова показывает, что я не работаю в пространстве приложения.Любые предложения относительно того, как я могу подойти к этой проблеме.

[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.

PS Это встроенный Linux на основе MIPS, проблема редко воспроизводима, но при загрузке.

...