Matlab调试器在崩溃后显示变量

Posted

技术标签:

【中文标题】Matlab调试器在崩溃后显示变量【英文标题】:Matlab debugger show variables after crash 【发布时间】:2013-07-09 07:30:19 【问题描述】:

我的代码在运行期间有很多变量,它在某行崩溃。现在,显然我想使用调试器在崩溃时明确显示变量值。但是,我可以在该行上定义一个断点,但是当我单击“继续”足够多次以使代码崩溃(该行在循环内,并且在循环的最后一次运行时崩溃)时,matlab 会清除所有的工作区运行时变量。

您知道如何维护变量以查看导致崩溃的值吗?非常感谢。

【问题讨论】:

【参考方案1】:

如果您使用dbstop if error,则 matlab 将在导致错误的行处停止,在实际导致崩溃之前,将所有已定义的变量保留在当前(函数的)工作区中。

另一种方法是使用try-catch ME 进行错误处理,但在您的情况下这似乎有点过头了。

【讨论】:

另一种选择是只使用条件断点。将条件设置为指示其最后一次循环迭代的某种状态(使用 for 循环很容易) dbstop if error 确实似乎是要走的路。请注意,如果需要进行广泛的分析,您可以使用 save 命令从调试模式存储变量。【参考方案2】:

如果崩溃发生在最后一个例程中,那么请少运行一次循环,并且您拥有所有变量,因此您也可以根据需要保存它们。 现在您可以在循环内逐行运行。

【讨论】:

以上是关于Matlab调试器在崩溃后显示变量的主要内容,如果未能解决你的问题,请参考以下文章

显示窗口 15 分钟后崩溃

恢复执行后被调试的程序崩溃

使用sf :: Text数组时发生崩溃

应用程序崩溃但在调试器控制台中仍然显示“正在运行...”

Firebase crashlytics 不显示崩溃

调试不显示代码崩溃点