我是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窗口中显示为未定义的字符。
我没有得到任何有用的堆栈跟踪。我可以看到调用了setup_ram_directories方法,因为它是错误之前调试器的最后一行。但是,实际错误发生在堆栈的更深处。我没有获得堆栈跟踪,也不能在出现错误时让eclipse暂停,因此我可以检查导致失败的内存状态。
一些额外的游戏似乎表明,每当调用在不同模块中定义的方法时,EPIC就会混淆,setup_ram_directories在辅助模块中定义。如果我深入研究上述方法,直到我在模块中包含的方法抛出异常,然后点击运行,我得到一个正确的堆栈跟踪。但是,对于我的堆栈深处的错误,需要多次运行程序才能确定哪些方法和方法。在我得到正确的堆栈跟踪之前,模块都失败了。
我需要做一些配置才能让PERL为我提供合适的堆栈跟踪吗?或者更好的是,我希望在程序失败时让调试器暂停,这样我就可以检查变量了。
我在perl表达式视图中尝试了过suppress_exit,它似乎没有做任何事情。