我是一名嵌入式 C 程序员(不是 C++ 程序员),我试图自学如何为生产创建更简单的 GUI。我用谷歌搜索了这个但找不到答案,但可能只是我的搜索措辞不正确。
我已经创建了一个自定义小部件,当我在调试我的应用程序时从 Qt Creator 访问它时,调试器确实进入了小部件的源代码。
但是,一旦在小部件的源代码中,它就会疯狂地跳来跳去,从第一行代码开始,然后在我按 F10 时向上跳到局部变量行,最后再次向下跳到代码中继续打F10。有时某些变量显示 <Optimised out>
而不是它们实际持有的值(value)。
我已尝试为小部件进行调试安装,但这根本没有任何区别。
真的可以像这样调试小部件吗?几个小时以来,我一直在兜圈子,需要想出一种更好的方法来深入了解程序在自定义小部件的某个部分崩溃的原因。
最佳答案
解决了。今天早上当我回到它时,我有一个清晰的时刻。我完全忘记了必须在 .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 这样复杂的系统学习时,这可能只是你犯的错误之一。
关于c++ - 调试自定义小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36438597/