目前我有一个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停止的点是否只是多线程程序中出现的点问题。