基于Matlab的c-单步VC++2010调试器



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

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

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

这样做可能吗?如果可能的话,我也想反过来做,也就是说,C程序产生数据点并存储在文件中,然后通过其代码向Matlab发出信号,继续单步执行

编辑:

我觉得虽然VC++2010调试器非常容易使用,但它们使它很难与任何其他程序结合使用。因此,如果在gcc的调试器(使用代码块或其他任何东西)中这样做是可能的,我希望得到一些关于如何做到这一点的建议(也就是说,不必是VC++的调试器)

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

事实上,有一件事我总是忘记,但在这里可能也会有所帮助,那就是MATLAB的LOADLIBRARY接口。这消除了在MEX贴面中封装C代码的需要。我从来没有尝试过,但我认为你可以在这里做同样的技巧-将VS调试器连接到正在运行的MATLAB进程并设置断点等。

最新更新