2011-04-10 40 views
0

我的项目由几个共享库和一个可执行文件组成。我试图从共享库调试我的代码,但调试器从不停止在断点上,并且我得到了每个断点的警告:“断点属性问题:安装失败。”。有人可以解释我这个问题或为我提供解决方法。在eclipse中调试共享库的问题

在此先感谢。

回答

0

在尝试设置断点之前,您是否启动了程序(导致它加载共享库)?如果你反其道而行(在启动程序之前设置断点),它可能不起作用,因为共享库代码尚未加载。

+0

但是然后错误(至少在gdb中是cdt中的默认调试器)会有所不同。无论如何,gdb建议记住断点并在库加载时激活它 – davka 2011-04-10 19:11:30

+0

根据我的经验,在未来共享库加载时激活断点的功能在gdb中调试C++时不可靠。我再次建议你必须先启动程序然后设置断点。如果Eclipse没有一个“开始”按钮,除了直到完成之前运行整个程序的那个按钮,你可以尝试在main()的第一行设置一个断点或者直接使用gdb(然后你可以使用“start “命令)。 – 2011-04-10 19:36:21

+0

我不是OP,顺便说一句。我也喜欢这种方式,用'b main; run'。然而,在Linux上启动程序是不够的,一个库实际上在第一次调用时加载,所以你需要在程序中直接运行/运行,直到 – davka 2011-04-10 19:59:25

0

不知道这是否会对你有帮助,但经过一番斗争后,我放弃了在eclipse中的调试,转移到了良好的旧gdb(这是eclipse调试的后端) - 这太令人讨厌了。您已经习惯了您期望的命令行界面,并且它快速,方便,直观而且功能强大。我喜欢使用UI和IDE,但无需任何费用。 gdb有几个UI“包装”,ddd是最受欢迎的人群,但它们并不完美。

至于共享库 - 如果您尝试在加载库之前设置断点,gdb将发出警告并建议记住它并在将来加载时激活。或者,您可以逐步完成程序,直到加载库。