lldb调试时设置Qt代码映射

在Windows平台上使用CLion调试Qt工程时,每次调试启动后都需要手动设置Qt源代码所在路径。平时因为调试Qt源码的次数不多,也不在乎多点几次。结果某次排查程序初始化问题时,需要反复重启程序调试Qt初始化相关逻辑,每次重启后都需要手动操作一次,着实被恶心到了。排查完问题之后,决定花点时间调研一下自动设置Qt源代码路径的可行性。

我本机的Qt工具链及源代码均安装在C:\Qt\目录下。而Qt官方编译产物的符号文件,对应的代码文件均指向C:\Users\qt\work\qt目录下。因为路径不匹配,导致调试器无法自动加载代码文件。Qt Creator对此的解决方法是:给个选项,手动设置Qt源代码目录😂猜测运行时会设置源代码映射,我们的解决方案应该也是类似的。

半自动

CLion使用lldb进行调试。搜索得知,可以通过如下命令,设置lldb在DEST中查找SRC下的源代码文件。

1
settings append target.source-map SRC DEST

Remap source file pathnames for the debug session

以Qt 6.5.3版本为例,假设Qt源代码存放在本地的C:\Qt\6.5.3\Src目录下,则可以在启动后通过下列lldb命令,设置Qt代码映射。

1
2
settings append target.source-map C:\Users\qt\work\qt C:\Qt\6.5.3\Src
settings append target.source-map C:\Users\qt\work\install C:\Qt\6.5.3\Src

全自动

上述方法,依然需要每次启动时手动输入一次命令,有没有更方便一点的方法?
再次搜索可知,可以通过.lldbinit文件设置lldb启动后自动执行的命令。
configuration-files
lldb启动后默认会加载~/.lldbinit并执行内部命令。
可以创建该文件文件,填充如下内容:

1
2
settings append target.source-map C:\Users\qt\work\qt C:\Qt\6.5.3\Src
settings append target.source-map C:\Users\qt\work\install C:\Qt\6.5.3\Src

这样每次启动lldb,都会自动设置Qt的代码映射。