17

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

4

3 回答 3

8

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

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

  1. 第 1 部分:了解 C/C++ 调试器接口- 涵盖高级基础知识。
  2. 第 2 部分:使用 Eclipse CDT 和 MI 访问 gdb - 解释了如何使 Eclipse 与 gdb 一起工作。

我认为第 2 部分是您真正需要的。基本上,您必须安装一个插件并在 Eclipse 中对其进行配置。

即使在 StackOverflow 上也有很多相关的问题:

  1. 如何在 Eclipse 中使用 GDB 进行 C/C++ 调试?
  2. 如何将 GDB 调试器安装到 Eclipse CDT
  3. 使用 Eclipse CDT 和 GDB 进行调试
  4. 如何在使用 Eclipse CDT 进行调试时向 gdb 提示符输入命令?

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

于 2013-01-27T14:21:45.677 回答
8

在 Windows 平台上:
调试 mex 代码的最佳方法(根据我的经验)是使用 Visual Studio。这是有关如何执行此操作的链接。

其他平台(Linux/Mac):除了gdb(一点都不好玩),
恐怕我还没有找到任何好的方法。

更新(2018 年):

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

于 2013-01-23T06:19:37.133 回答
7

这是我的解决方案,适用于 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. 祝调试愉快!:-)
于 2013-07-31T11:40:25.750 回答