Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 可以用Eclipse调试mex代码吗?_Linux_Eclipse_Matlab_Debugging_Mex - Fatal编程技术网

Linux 可以用Eclipse调试mex代码吗?

Linux 可以用Eclipse调试mex代码吗?,linux,eclipse,matlab,debugging,mex,Linux,Eclipse,Matlab,Debugging,Mex,我试图编写一些mex代码,但在控制台上用gbd调试它是很痛苦的。可以使用Eclipse或Matlab的GUI吗?如果这些方法不可行,那么编写提供良好调试功能的mex代码的最佳方法是什么?在Windows平台上: 根据我的经验,调试mex代码的最佳方法是使用VisualStudio。 这里有一个关于如何做的例子 其他平台(Linux/Mac): 恐怕除了gdb(一点也不好玩)之外,我还没有找到任何好的方法 更新(2018年): 最近,Mathworks发布了一个描述如何使用调试mex代码的脚本。

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

在Windows平台上:
根据我的经验,调试mex代码的最佳方法是使用VisualStudio。 这里有一个关于如何做的例子

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

更新(2018年): 最近,Mathworks发布了一个描述如何使用调试mex代码的脚本。

我自己还没有尝试过,但它似乎是调试mex文件的一个很好的跨平台解决方案。

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

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

  • -涵盖高级基础知识
  • -解释如何使Eclipse与gdb一起工作
  • 我认为第二部分是你真正需要的。基本上,您必须在Eclipse中安装并配置

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


  • 我还没有尝试过,所以我希望它能起作用。

    这是我的解决方案,它在Ubuntu 12.04、Matlab R2012b和Eclipse IDE for C/C++开发者开普勒版本中都能运行

  • 在Eclipse中,从“运行”选项卡打开“调试配置”。然后创建一个新的“C/C++应用程序”
  • 在“Main”选项卡中,在“C/C++应用程序”(我的是“/usr/local/matlab/R2012b/bin/glnxa64/matlab”中写入matlab可执行文件的正确路径。注意:不是MATLABPATH/bin/matlab)。
  • 在“参数”选项卡中,添加“-nojvm”作为程序参数。
  • 在“环境”选项卡中,添加值为“gdb”的变量“MATLAB_DEBUG”
  • 按“应用”和“调试”
  • “Matlab控制台”将在“控制台”视图中打开
  • 在此控制台中写入“dbmex on”。这将启用调试
  • 运行mex文件!(Matlab将在加载每个新mex文件时停止)
  • 祝您调试愉快!:-)
    谢谢你的回答。。。我在linux上使用的是官方文档的方式,但与GUI的调试方式相比,它太耗时了。但是我会看看你提供的链接。@Erogol-我对你的问题给予了奖励,希望得到更好的答案,特别是对于eclipse+gdb+linux配置。在赏金期间,请注意这个问题和答案,以便我们能够一起找到一个有效的解决方案。谢谢。@EitanT-我有点希望在Linux上使用eclipse进行mex调试时有一个更详细的方法。好吧,没有其他人提出挑战,所以你去吧,好好利用这个赏金。@Shai很遗憾,我无法访问安装在Linux上的MATLAB。然而,我确实使用上面的指令成功地在Eclipse中调试了gdb,因此我认为这与MATLAB的gdb调试教程相结合,可以给出一个充分的答案。如果时间允许,我将对其进行改进,以提供更好的解释。它更倾向于为Eclipse实现自己的调试器插件。在我看来,对于那些正在寻找其他人实现的插件的人来说,这个答案一点用处都没有。在windows中,我们尝试了eclipse+Mingw64,但它不起作用。我进入步骤nr 7,它显示“DBMEX在PC上不工作。有关如何调试MEX文件的详细信息,请参阅MATLAB外部接口指南。”我没有在windows中测试过这一点。那里的visual studio更简单。谢谢!我可以在ArchLinux上使用R2016a和EclipseNeon4.6。我只是在“上添加了
    -r”dbmex作为参数,以避免每次都键入它。附录:我使用的路径是
    ../r2016 a/bin/glnxa64/MATLAB
    ,也就是说,我没有在
    /usr/bin/…
    中调用包装器脚本,因为eclipse对此表示不满。