关于分析调试回溯

时间:2014-03-03 10:04:02

标签: c++ multithreading qt debugging crash

目前我有一个C ++程序,它在运行时偶尔会崩溃。我在Dr. Memory中运行它,但是当它没有崩溃时,没有报告明显的错误,并且当drmemory执行时根本没有报告任何内容(它刚刚结束)。所以我在相应的MinGW包中使用随附的GDB进行了调试。

该程序已编译完成。与MinGW gcc 32bit(dwarf2& sjlj产生类似的结果)相关联,在64位Windows 7下.GDB调试器捕获了导致程序崩溃的SIGSEGV。我做了一个完整的回溯,但我不知道如何分析它,因为我以前没有做过。

这是程序崩溃时调试器停止的地方:

Thread 539 (Thread 5904.0x11b4):
#0  0x00000000 in ?? ()
No symbol table info available.
#1  0x00433f1b in pthread_create_wrapper ()
No symbol table info available.
#2  0x763d1287 in msvcrt!_itow_s () from C:\Windows\syswow64\msvcrt.dll
No symbol table info available.
#3  0x763d1328 in msvcrt!_endthreadex () from C:\Windows\syswow64\msvcrt.dll
No symbol table info available.
#4  0x74e5336a in KERNEL32!BaseThreadInitThunk () from C:\Windows\syswow64\kernel32.dll
No symbol table info available.
#5  0x77069f72 in ntdll!RtlInitializeExceptionChain () from C:\Windows\system32\ntdll.dll
No symbol table info available.
#6  0x77069f45 in ntdll!RtlInitializeExceptionChain () from C:\Windows\system32\ntdll.dll
No symbol table info available.
#7  0x00000000 in ?? ()
No symbol table info available.

我不知道是否应该发布回溯的其他部分;它很长,因为该程序是一个多线程的Qt Gui程序。

我想#0 00000000 in ?? ()是程序崩溃的地方,因为在其他线程中总是有一个新的线程在... -> msvcrt!_endthreadex () -> msvcrt!_itow_s () -> pthread_create_wrapper ()之后启动。

我已经调试了好几天了......这让我起了作用。任何帮助将不胜感激!!

P.S。如果我也应该发布回溯的其他部分,请告诉我。我不知道GDB停止的点是否只是多线程程序中出现的点问题。

0 个答案:

没有答案