关于c ++:如何在XCode中调试DYLIB?

您所在的位置:网站首页 如何查看插件dylib的内容 关于c ++:如何在XCode中调试DYLIB?

关于c ++:如何在XCode中调试DYLIB?

2023-08-04 06:02| 来源: 网络整理| 查看: 265

我是一位经验丰富的Visual Studio开发人员,最近从事OSX 10.6项目(无UI的C ++服务器项目)。

我已经使用XCode调试器(设置断点等)成功调试了应用程序几个月,包括调试链接到最终可执行程序的各种静态库的源代码。

但是,今晚我需要调试(带有断点)同样由我们的源代码构建的DYLIB,但是它在运行时与应用程序动态链接(DYLIB的名称由主应用程序从.ini文件读取) )。

不幸的是,尽管它确实成功运行了调试器并允许我调试应用程序(以及它的静态链接库),但我通常使用的方法是调试应用程序(右键单击自定义可执行文件并选择"使用断点调试"),当我尝试在DYLIB的源代码中遇到断点时,将表现出以下不良行为:

-> XCode调试器报告断点已击中,因为我在XCode窗口底部的状态栏中看到了函数和行号(以及这是gdb消息的指示),并且应用程序停止了执行。但是,没有堆栈跟踪,没有变量,没有任何东西-只是一个完全空的调试器窗口。"进入","进入"等按钮被禁用。调试器中没有显示编辑器窗口(因此,在所指示的行上没有可视化的迹象表明调试器已停止)。手动打开文件并不能显示调试器的作用。

不幸的是,就我尝试调试DYLIB而言,这对我没有用。

我今晚四处搜寻,试图为XCode调试器找到一种方法,以一种有意义的方式成功地在动态链接的DYLIB的源代码中达到断点。我当然已经做了许多清理/重建工作。我已确定未检查"懒惰地加载符号",然后将其清理/重建。我已经重新启动,并且还删除了" build"目录并进行了重建。我还删除了.xcodeproj包中用户特定的文件。 (还请注意,我当然是在开发模式下构建并运行所有代码,包括DYLIB代码,并且关闭了所有优化功能,并为所有代码生成调试符号。)但是,我的尝试并未成功。我在互联网论坛上也找不到任何提及此问题的内容。

指导我如何使用XCode成功调试链接到我的应用程序的DYLIB的任何帮助将不胜感激。

谢谢, 担。

相关讨论 鉴于我已经做了很多相同的事情。 没有麻烦。 我只能暗示您的问题与DevStudio中的问题几乎相同:您的dylib没有调试符号。

更新-

该问题已解决。 正是由于我对OSX的缺乏经验,使我无法看到这一点。 尽管我的DYLIB项目与调用它的可执行文件属于同一个XCode项目,并且尽管DYLIB与可执行文件位于同一目录中,但是在运行时,调试后的应用程序无法从该目录访问DYLIB 位置。 而是从一个(不同的)安装位置访问它。 到目前为止,我还没有找到将安装位置"烹饪"到应用程序中的位置,而是通过将最终的可执行文件/ DYLIB复制到预期的安装位置并创建一个新的自定义可执行文件来指向该位置的可执行文件,进行调试 DYLIB和可执行文件的功能。

谢谢, 担。

相关讨论 Mac上的动态库嵌入了需要搜索它们的路径,并且在链接过程中将此路径复制到了可执行文件中。 可以使用otool -D libfile.dylib查询路径。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3