从Matlab单步执行VC ++ 2010调试器

时间:2012-09-26 07:00:28

标签: c matlab visual-c++

我有一个C函数,我移植到Matlab

然而,C版本产生的输出比我的Matlab版本好得多 所以我希望Matlab版本生成所需的数据代码,然后加载到C中的变量,让C对数据点进行处理,反之亦然,这样我就可以比较两个程序在哪里以及如何以不同的方式工作同一组数据 问题是一个数据集至少有256个浮点数并且有数百个这样的数据集

如果我可以在Matlab中计算数据集,将它们存储在一个文件中并向A调试器发送一个Acknowledge信号会更方便,这样当它从Matlab获取信号时它继续单步执行它的代码,从磁盘上的文件加载提供我的matlab的数据

甚至可以这样做吗?如果可能的话,我希望能够反向执行此操作,也就是说,C程序生成数据点然后存储在文件中,然后通知Matlab继续单步执行它的代码

编辑:

我觉得尽管VC ++ 2010调试器非常易于使用,但它们很难与其他任何程序一起使用。因此,如果在gcc的调试器(使用Codeblocks或其他任何东西)中执行此操作是可能的,我想了解如何执行此操作(不必是VC ++的调试器)

1 个答案:

答案 0 :(得分:0)

如果将C代码包装为MEX文件,则可以将数据直接从MATLAB发送到C代码中。然后,您可以将VS调试器附加到MATLAB进程,并像往常一样在MEX文件中设置断点。这将允许您单步执行MATLAB代码,然后通过C代码。 (请注意,当您单步执行C代码时,MATLAB将无响应。)

实际上,我总是忘记的一件事,但也可能在这里有用的是MATLAB的LOADLIBRARY界面。这样就无需在MEX胶合代码中包装C代码。我从来没有尝试过,但我认为你可以在这里做同样的技巧 - 将VS调试器连接到正在运行的MATLAB进程并设置断点等。