我在Ubuntu中使用Qt Creator。它是从存储库安装的,但现在在调试时没有办法进入Qt源代码。
我该如何启用此功能?
由于Qt Creator使用gdb,因此您需要配置gdb。首先要做的是安装Qt调试符号:
apt-get install libqt4-dbg
或者,对于Qt5:
apt-get install qtbase5-dbg # For the qtbase package
这将安装Qt库的调试符号。旧版Ubuntu存在一个愚蠢的bug,需要额外的技巧来修正这些符号文件,但在当前版本中,它可以正常工作。
这将使gdb进入Qt方法,但如果没有源代码,这就没什么意义了。因此,我们需要安装源代码,假设源代码存储库已在APT中启用,则可以像这样安装:
apt-get source qt4-x11
ln -s qt4-x11-4.7.0 qt # a convenience symlink
或者,对于Qt5:
apt-get source qtbase-opensource-src
# Make a link as above, if you wish
这将下载源代码,将其解压缩到当前目录并相应地打补丁,不需要 root 权限,除非当前用户没有写入当前目录的权限。
最后一件事是告知 gdb 源文件的位置,这可以通过在 ~/.gdbinit
文件中添加以下内容来完成:
dir ~/vita/qt/src/corelib
dir ~/vita/qt/src/gui
dir ~/vita/qt/src/network
dir ~/vita/qt/src/sql
根据需要添加模块和更正路径。这里非常有用的是方便的符号链接,这样我们就不必每次升级到新的Qt版本时都编辑这个文件。我们只需要下载新的源代码,打补丁并更改符号链接。
请注意,即使我们安装了调试符号,我们仍然使用Qt库的发布构建。这意味着代码经过高度优化,有时在进入Qt二进制文件时会表现得非常奇怪。如果这是一个问题,那么就需要以调试模式构建Qt,在单独的位置(例如 /usr/local/qt4-debug)安装它,并告诉Qt Creator使用该特定安装。
Linux下的Qt二进制包不包含调试符号,因此调试器不知道要跳转到哪个文件或行号。如果您想要能够调试Qt代码,您需要使用-debug配置选项自己构建Qt。
Sergey Tachenov的说明只适用于您构建应用程序时使用Ubuntu存储库中可以找到的Qt版本。
qtbase5-dbg
е’Ңqtbase-opensource-src
гҖӮ - Pavel Strakhov