Qt或我的程序出现此错误吗?

时间:2016-04-09 16:44:28

标签: c++ qt5 valgrind

我是valgrind的新手。我在Ubuntu 15.10上使用Qt 5.5.1库用C ++编写了一个程序。我正在使用Qt Creator和Debug构建集。我使用Valgrind使用以下命令检查内存泄漏:

valgrind --leak-check=yes --track-origins=yes ./texteditor
然后Valgrind给了我以下信息:

==2977== Conditional jump or move depends on uninitialised value(s)
==2977==    at 0x97ED1EC: ??? (in /usr/lib/i386-linux-gnu/libgtk-x11-2.0.so.0.2400.28)
==2977==    by 0x97EE58A: ??? (in /usr/lib/i386-linux-gnu/libgtk-x11-2.0.so.0.2400.28)
==2977==    by 0x5B3380B: g_cclosure_marshal_VOID__VOID (in /usr/lib/i386-linux-gnu/libgobject-2.0.so.0.4600.2)
==2977==    by 0x5B31B8A: g_closure_invoke (in /usr/lib/i386-linux-gnu/libgobject-2.0.so.0.4600.2)
==2977==    by 0x5B43FFB: ??? (in /usr/lib/i386-linux-gnu/libgobject-2.0.so.0.4600.2)
==2977==    by 0x5B4CC95: g_signal_emit_valist (in /usr/lib/i386-linux-gnu/libgobject-2.0.so.0.4600.2)
==2977==    by 0x5B4CFC4: g_signal_emit (in /usr/lib/i386-linux-gnu/libgobject-2.0.so.0.4600.2)
==2977==    by 0x96ECD00: gtk_adjustment_changed (in /usr/lib/i386-linux-gnu/libgtk-x11-2.0.so.0.2400.28)
==2977==    by 0x5B35465: ??? (in /usr/lib/i386-linux-gnu/libgobject-2.0.so.0.4600.2)
==2977==    by 0x5B384FC: g_object_thaw_notify (in /usr/lib/i386-linux-gnu/libgobject-2.0.so.0.4600.2)
==2977==    by 0x96ED182: gtk_adjustment_configure (in /usr/lib/i386-linux-gnu/libgtk-x11-2.0.so.0.2400.28)
==2977==    by 0x4563C7F: ??? (in /home/tembo/Qt/5.5/gcc/lib/libQt5Widgets.so.5.5.1)
==2977==  Uninitialised value was created by a stack allocation
==2977==    at 0x456215F: ??? (in /home/tembo/Qt/5.5/gcc/lib/libQt5Widgets.so.5.5.1)

从上面的消息中,没有任何内容指向myProgram的位置。这是来自Qt和其他图书馆还是我错过了指向myProgram的内容?

1 个答案:

答案 0 :(得分:2)

默认情况下,Valgrind仅显示调用堆栈的前12个条目,但可以使用--num-callers=xx参数更改此条目。您自己的程序代码中的函数可能会在堆栈中进一步下降。