Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.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
C 如何编程使调试变得容易?_C_Matlab - Fatal编程技术网

C 如何编程使调试变得容易?

C 如何编程使调试变得容易?,c,matlab,C,Matlab,我正在尝试开发一些基于图像处理的非常复杂的应用程序。我广泛使用openCV。然而,随着程序复杂性的增加,我发现调试程序非常困难。为了调试,我必须在Matlab中开发相同的算法。其主要原因是,即使matlab代码中存在任何错误,即使代码停止运行或崩溃,变量的值也会保留。由于这些值存在,我可以使用不同的可视化工具对其进行分析;喜欢策划它;将其显示为图像。有什么方法或特性可以用C实现,这样我们就可以接近相同的行为 要调试vision算法,我强烈建议将算法划分为不同的vision步骤。通过将c程序构建为

我正在尝试开发一些基于图像处理的非常复杂的应用程序。我广泛使用openCV。然而,随着程序复杂性的增加,我发现调试程序非常困难。为了调试,我必须在Matlab中开发相同的算法。其主要原因是,即使matlab代码中存在任何错误,即使代码停止运行或崩溃,变量的值也会保留。由于这些值存在,我可以使用不同的可视化工具对其进行分析;喜欢策划它;将其显示为图像。有什么方法或特性可以用C实现,这样我们就可以接近相同的行为

要调试vision算法,我强烈建议将算法划分为不同的vision步骤。通过将c程序构建为一个函数,将每个步骤作为一个函数连接到一个可视化环境(如matlab)中。然后将控制器部分编程为matlab脚本,而不是c。这允许您以图像的形式查看每个视觉步骤


编辑:您似乎无法使用我发布的插件方法附加visual studio插件,请参阅注释。

即使不是这样,带有日志语句的通用try/catch块也会有很大的帮助。@Matt我对此一无所知。。你能告诉我是什么吗。我使用VisualStudio作为编辑器。它是否有我不知道的可用功能?您可以使用Visual Studio的内置调试器逐步调试代码-它非常强大。@Matt在调试时有什么方法可以打印数据吗?与此同时,我搜索了GDB。web上列出了两个文件gdb-7.2.tar.bz2和gdb-7.2.tar.gz。我不知道该用哪一个。当我已经有了visual studio时,您是否建议使用GDB?我不熟悉openCV,所以您可能需要调试构建之类的东西来实现这一点。据我所知(完整的免责声明:我没有使用VS开发C程序),VS的调试器将满足C代码的需要,所以也不需要GDB。如果你不熟悉调试器,GDB对你来说可能很难学习。听起来是个不错的答案,但我不知道1)如何将一段用C编写的代码附加到matlab中。2) 如何将VS调试器附加到matlab。你能告诉我怎么做吗?或者你能告诉我一个正确的链接吗?很抱歉我的无知。。。我点击了插件,并得到了正确的1)没有问题。顺便说一句,您似乎无法使用我发布的方法附加VisualStudio调试器。然后使用matlab编译器编译程序。但是,您可以使用loadlibrary并直接从dll调用本机函数。这种方法的缺点是不能传递指针。