我正在为MacOS上的第三方主机应用程序开发一个插件,该插件可以编译为.dylib(具有关联的DSYM目录)。 .dylib和DSYM目录通过提供的构建脚本自动复制到主机的插件目录。构建脚本使用clang
来构建.dylib。主机应用程序可以打开插件。
使用Xcode,我能够在Xcode中使用lldb
调试.dylib,因为Xcode能够以某种方式识别出与dylib匹配的源。
我希望使用CLion建立一个类似的系统,但是我无法让CLion将源中的断点行与dylib相关联。当我在源代码中创建断点时,它警告我“断点当前不会被命中。此行没有关联的可执行代码”。我几乎希望得到这样的警告,因为该图像尚未加载到主机应用程序中。但是,加载插件不会触发断点。
我尝试将Configuration的Executable设置为.dylib,并将工作目录设置为.dylib和DSYM目录的位置(这是手动运行lldb时必须要做的),但这似乎并没有帮助。
我的问题是:
lldb
?需要注意的重要一件事是,我不是直接用CLion构建.dylib,它是由外部构建系统构建的,我只是尝试使用CLion调试生成的图像,我知道这应该起作用(它可以起作用至少与Xcode和lldb一起使用)。我有一个基本的CMakeLists.txt
,足以让CLion理解代码库,但是并不能用来构建代码库(除了CLion可能会检查语法的任何后台编译等)。