【发布时间】:2010-02-02 19:49:51
【问题描述】:
我必须在我的 Qt 应用程序中调试某些内容,但堆栈显示的指令不属于我的代码,并且我有 3 个线程(包括主线程)正在运行。调试此问题的最佳方法是什么?我需要压扁吗?如果我粘贴堆栈,您能帮忙吗?
这是似乎出错的线程的堆栈跟踪:
0 提高 /lib/libc.so.6 0
1 中止 /lib/libc.so.6 0
2 ?? /lib/libc.so.6 0
3?? /lib/libc.so.6 0
4 免费 /lib/libc.so.6 0
5 ?? /lib/libc.so.6 0
6 tzset /lib/libc.so.6 0
7 QTime::currentTime() /usr/lib/libQtCore.so.4 0
8 FPSengine::xmitData FPSengine2.cpp 93
9 FPSengine::getData FPSengine2.cpp 21
10 线程数据日志::运行线程数据日志.cpp 109
11 ?? /usr/lib/libQtCore.so.4 0
12 start_thread /lib/libpthread.so.0 0
13 克隆 /lib/libc.so.6 0
14 ?? 0
中止表示存在异常,它似乎总是与调用 QTime::currentTime()(调用 tzset)有关。此外,问题总是来自使用 QtConcurrent::run() 创建的线程。主线程或任何 QThreads 都不会发生这种情况。
【问题讨论】:
-
Qt Creator 提供了 gdb 的前端以及其他 IDE 功能。 qt.nokia.com/products/developer-tools
-
首先,您要解决的错误是什么?