Qt中的跟踪分段错误

时间:2015-04-14 15:50:03

标签: qt debugging sigsegv

我正在使用Qt中的嵌入式Linux应用程序,并且遇到了我无法追踪的SIGSEGV问题。我希望能够发布代码,但Qt Creator只向我展示了一些汇编代码,并没有提供大量的堆栈来追溯。

我可以看到在尝试分支到无效地址后,QApplicationPrivate::notify_helper(QObject*, QEvent*)发生了崩溃。我可以看到QApplication::notify()调用了这个,但是Qt Creator给了我的所有堆栈信息。在这一点上我唯一可以想到的是,之前的分段错误看起来像杀死了QTimer(我使用的很多定时器都是单发),但我被抛入反汇编中并且可以永远不要确定导致问题的QTimer。那次崩溃是零星的,而这一次似乎非常一致。

任何人都可以建议我可以做些什么来获取更多信息,以便让我找出这个错误的来源?我可以根据需要提供其他详细信息,但我可能需要知道我应该在哪里查看。

编辑: 事实证明,上一个错误的原因是没有正确绑定检查的数组索引。我偶尔会看到一个似乎与QTimer相关的崩溃,因为反汇编指向QObject::startTimer(int),但在这种情况下我无法看到任何明显的原因。同样,堆栈无法确定哪个计时器可能导致问题;我只能看到QTimer::start()后跟QObject:startTimer(int)的电话。

0 个答案:

没有答案