使用 EPIC 调试器:当程序不正确退出时如何查看获取有意义的堆栈跟踪

Using EPIC debugger: how to see get a meaningful stack trace when program exits improperly

我对 perl 和 epic 都不熟悉,所以请原谅我问了一些显而易见的问题。我确实在网上玩了一些,但没有找到任何东西。

我正在 运行调试器中运行 perl 程序,但失败了。当它失败时,我会收到一条毫无帮助的消息。我无法复制和粘贴它,也无法手写,因为它有太多无法识别的字符。它看起来像:

Debugged program terminated.  use [imq[0m to quit or [1mr[om to restart, 
use [1mo[0m [4minhibit_exit[24m to avoid stopping after program termination

在 eclipse consol 中,所有带有方括号的地方都显示为未定义的字符 window。

我没有得到任何有用的堆栈跟踪信息。我可以看到调用了 setup_ram_directories 方法,因为它是调试器出错前的最后一行。但是,实际错误发生在堆栈的更深处。我没有得到堆栈跟踪,也无法在出现错误时让 eclipse 暂停,因此我可以检查导致失败的内存状态。

一些额外的尝试似乎表明,每当调用不同模块中定义的方法时,EPIC 就会感到困惑,setup_ram_directories 是在辅助模块中定义的。如果我更深入地研究上述方法,直到我进入包含在抛出异常的模块中的方法,然后点击 运行,我就会得到正确的堆栈跟踪。但是,对于我的堆栈深处的错误,在我到达正确的堆栈跟踪点之前,需要多次 运行 的程序来确定哪些方法和模块失败了。

我需要做一些配置才能让 PERL 为我提供正确的堆栈跟踪吗?或者更好的是,我更愿意在程序将要失败时让调试器暂停,以便我可以检查变量。

我试过 inhibit_exit 从 perl 表达式的角度来看,它似乎没有做任何事情。

尝试使用以下适用于 EPIC 的插件:

http://andrei.gmxhome.de/anyedit/