CLion-如何配置为附加到现有进程以调试.dylib

时间:2020-05-03 00:43:58

标签: debugging clion lldb dylib dsym

我正在为MacOS上的第三方主机应用程序开发一个插件,该插件可以编译为.dylib(具有关联的DSYM目录)。 .dylib和DSYM目录通过提供的构建脚本自动复制到主机的插件目录。构建脚本使用clang来构建.dylib。主机应用程序可以打开插件。

使用Xcode,我能够在Xcode中使用lldb调试.dylib,因为Xcode能够以某种方式识别出与dylib匹配的源。

我希望使用CLion建立一个类似的系统,但是我无法让CLion将源中的断点行与dylib相关联。当我在源代码中创建断点时,它警告我“断点当前不会被命中。此行没有关联的可执行代码”。我几乎希望得到这样的警告,因为该图像尚未加载到主机应用程序中。但是,加载插件不会触发断点。

我尝试将Configuration的Executable设置为.dylib,并将工作目录设置为.dylib和DSYM目录的位置(这是手动运行lldb时必须要做的),但这似乎并没有帮助。

我的问题是:

  1. CLion是否在内部使用lldb
  2. 我想用CLion做些什么吗?
  3. 如果是,在这种情况下正确的配置是什么?

需要注意的重要一件事是,我不是直接用CLion构建.dylib,它是由外部构建系统构建的,我只是尝试使用CLion调试生成的图像,我知道这应该起作用(它可以起作用至少与Xcode和lldb一起使用)。我有一个基本的CMakeLists.txt,足以让CLion理解代码库,但是并不能用来构建代码库(除了CLion可能会检查语法的任何后台编译等)。

0 个答案:

没有答案