2016-04-05 36 views
0

我是一位嵌入式C编程人员(不是C++编程人员),试图自行学习如何为生产创建更好的简单GUI。我谷歌搜索了这个,并找不到答案,但可能只是我的搜索字词错误地。调试自定义小部件

我创建了一个自定义小部件,当我在调试我的应用程序时从Qt创建者那里访问它时,调试器确实进入了部件的源代码。

然而,一旦在小部件的源代码中,它会从第一行代码开始疯狂地跳转,然后当我点击F10并最终再次进入代码时向上跳到局部变量的行中我继续打F10。有时某些变量显示<Optimised out>而不是实际保存的值。

我试图为小部件进行调试安装,但这根本没有任何区别。

实际上是否可以调试这样的小部件?我一直在这个圈子里转了几个小时,并且需要想出一个更好的方式来深入了解为什么程序崩溃在自定义小部件的某个部分。

+0

听起来像你试图调试版本可执行文件。你确定你有适当的配置吗? –

+0

是的,它可以调试一个自定义小部件。它与任何其他代码没有区别。你能否提供你所看到的行为的例子? –

+0

@NicolasHolthaus,不,我不确定。我的应用程序肯定处于调试模式。我重新编译的小部件就像我上面描述的那样,但是由于某种原因,“make debug install”似乎已经被编辑出来了,但是这并没有帮助。如果你能描述如何达到这个目标,我会非常感激。 – DiBosco

回答

2

解决了它。今天早上,当我回到它时,我有一个清晰的时刻。我完全忘记了必须引用.pro文件中的库。所以,尽管我已经复制了调试库:

/usr/lib64/qt5/plugins/designer/libcutescreenwidgetplugin.so 

的问题是,该项目的文件有:

LIBS += pathtosoucecode/build-CuteScreenWidgetPlugin-Desktop_9516b5-Release/libcutescreenwidgetplugin.so 

有一次,我改变了参考调试库中的所有调试信息和单一步完美。

现在已经发生,我认为也许我真的应该有:

LIBS += /usr/lib64/qt5/plugins/designer/libcutescreenwidgetplugin.so 

在我的项目文件,所以一旦安装调试版本,它会自动使用该网址。这可能只是您在使用像Qt这样复杂的系统进行学习时所犯的错误之一。