Windows/Mac上调试Qt源代码

使用Qt动态库时,经常遇到需要调试Qt源代码的情况,本文记录一下在Windows和Mac上分别如何进行调试

前置工作

要调试Qt源代码首先需要下载对应版本的源代码和调试信息,这些在Qt MaintenanceTool工具安装时可以按需勾选

Image

安装完毕后,Qt的安装目录就能找到对应的文件:

  • 源代码位于Qt/Qt版本(如6.5.2)/Src
  • 调试信息与各个动态库目录相同,Windows上为pdb文件,Mac上为dYSM文件

Windows

在设置中为符号路径新增Qt的源代码目录即可

Image

也可以在调用栈中对某个Qt的栈帧右键选择“Load Symbols”,再按路径查找该目录

Image

设置完成后,即可显示对应的调用栈信息及源码位置

Image

Image

Mac

Mac需要在lldb调试器中设置符号路径的映射。首先使用lldb附加到要调试的进程上,然后按照这个帖子中的方法使用image lookup -vn命令查看Qt编译单元的原始路径

Image

然后使用settings set命令更新源代码路径的映射即可,注意这里只需要设置前面不同的路径,保留后面相同的部分,以上图为例,假设Qt 6.5.2目录位于Home目录下:

settings set target.source-map /Users/qt/work/qt /Users/XXX/Qt/6.5.2/Src

然后就可以进行调试了。也可以将该命令添加到~/.lldbinit配置文件中,每次启动lldb都会自动设置