是否可以使用Eclipse调试mex代码?

ero*_*gol 17 eclipse linux debugging matlab mex

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

Sha*_*hai 8

在Windows平台上:
调试mex代码的最佳方式(根据我的经验)是使用Visual Studio.这是一个如何做到这一点的链接.

其他平台(Linux/Mac):
我担心除了gdb之外我没有找到任何好方法(这根本好玩).

更新(2018年):

最近,Mathworks发布了一篇博客文章,描述了如何使用Visual Studio Code来调试mex代码.
我自己没有尝试过,但它似乎是一个很好的跨平台解决方案来调试mex文件.


Eit*_*n T 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提示符下输入命令?

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


Tor*_* Bø 7

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

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