【问题标题】:Is it possible to debug mex code with Eclipse?是否可以使用 Eclipse 调试 mex 代码?
【发布时间】:2013-01-06 10:25:15
【问题描述】:

我正在尝试编写一些 mex 代码,但在控制台上使用 gbd 调试它很痛苦。是否可以使用 Eclipse 或 Matlab 的 GUI?如果这些都不是可行的方法,那么编写提供良好调试功能的 mex 代码的最佳方法是什么?

【问题讨论】:

    标签: linux eclipse matlab debugging mex


    【解决方案1】:

    在 gdb 中调试 C/C++ MEX 文件已经在 official documentation 中全面介绍,因此我的建议是尝试将 gdb 与 Eclipse CDT 集成。

    那里有很多关于如何正确操作的信息,所以我不会在这里重复所有内容。我所知道的最好的教程是 IBM 的两部分指南,“与 CDT 调试器交互”

    1. Part 1: Understand the C/C++ debugger interface - 涵盖高级基础知识。
    2. Part 2: Accessing gdb with the Eclipse CDT and MI - 解释如何使 Eclipse 与 gdb 一起工作。

    我认为第 2 部分是您真正需要的。基本上,你必须安装一个plug-in 并在 Eclipse 中配置它。

    即使在 StackOverflow 上也有不少相关问题:

    1. How do I use GDB in Eclipse for C/C++ Debugging?
    2. How to install GDB debugger to Eclipse CDT
    3. Debugging with Eclipse CDT and GDB
    4. How can I enter commands to a gdb prompt while debugging with Eclipse CDT?

    我还没有尝试过,所以我希望这可行。

    【讨论】:

    • 感谢您的回答...我在linux上使用官方文档的方式,但与GUI调试方式相比,它非常耗时。但我会看看你提供的链接。
    • @Erogol - 我悬赏你的问题,希望能得到更好的答案,尤其是对于 eclipse + gdb + linux 配置。请在赏金期间关注此问答,以便我们共同找到可行的解决方案。谢谢。
    • @EitanT - 我有点希望在 Linux 上使用 eclipse 进行 mex 调试的更详细方法。好吧,没有其他人接受挑战,所以你去吧,好好利用这个赏金。
    • @Shai 不幸的是,我无法访问安装在 Linux 上的 MATLAB。但是,我确实使用上面的说明成功地在 Eclipse 中调试了 gdb,所以我认为这与 MATLAB 的 gdb 调试教程相结合可以得到足够的答案。如果时间允许,我会完善它以提供更好的解释。
    • 链接的 IBM“指南”并没有真正的帮助。它更适合为 Eclipse 实现自己的调试器插件。对于我们这些只是在寻找别人已经实现的插件的人来说,我认为这个答案根本没有用。
    【解决方案2】:

    在 Windows 平台上:
    调试 mex 代码的最佳方法(根据我的经验)是使用 Visual Studio。 这是一个link 说明如何操作。

    其他平台(Linux/Mac):
    恐怕除了 gdb 之外我还没有找到任何好的方法(这很有趣)。

    更新(2018 年):

    最近,Mathworks 发布了一个 blog post 描述如何使用 Visual Studio Code 来调试 mex 代码。
    我自己没有尝试过,但它似乎是调试 mex 文件的一个不错的跨平台解决方案。

    【讨论】:

      【解决方案3】:

      这是我的解决方案,适用于 Ubuntu 12.04、Matlab R2012b 和 C/C++ 开发人员 Kepler 版本的 Eclipse IDE。

      1. 在 Eclipse 中,从运行选项卡中打开“调试配置”。然后创建一个新的“C/C++ 应用程序”。
      2. 在“主”选项卡中,将正确的路径写入“C/C++ 应用程序”中的 matlab 可执行文件(我的是“/usr/local/MATLAB/R2012b/bin/glnxa64/MATLAB”注意:不是 MATLABPATH/ bin/matlab)。
      3. 在“参数”选项卡中添加“-nojvm”作为程序参数。
      4. 在“环境”选项卡中添加变量“MATLAB_DEBUG”,其值为“gdb”
      5. 按“应用”和“调试”
      6. “Matlab 控制台”将在“控制台”视图中打开。
      7. 在此控制台中写入“dbmex on”。这将启用调试。
      8. 运行 mex 文件! (Matlab 将在加载每个新的 mex 文件时停止)
      9. 祝调试愉快! :-)

      【讨论】:

      • 在windows中用eclipse+Mingw64试过了,还是不行。我进入第 7 步,它显示“DBMEX 在 PC 上不起作用。有关如何调试 MEX 文件的详细信息,请参阅 MATLAB 外部接口指南。”
      • 我没有在 Windows 中测试过这个。有visual studio就容易多了。
      • 谢谢!使用 R2016a 和 Eclipse neon 4.6 在 ArchLinux 上为我工作。我刚刚还添加了 -r "dbmex on" 作为参数,以避免每次都输入它。
      • 附录:作为我使用.../R2016a/bin/glnxa64/MATLAB 的路径,即我没有在/usr/bin/... 中调用包装脚本,因为 Eclipse 一直在抱怨它。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-10
      • 1970-01-01
      • 1970-01-01
      • 2020-02-05
      • 1970-01-01
      • 1970-01-01
      • 2011-08-31
      相关资源
      最近更新 更多