我正在尝试找到一种在调试器下启动perl进程的方法,但是只是开始自动运行而不停在第一个语句并让我输入'c'来启动它。这个模块由一个更大的系统运行,我需要能够定期(根据外部条件)通过中断信号中断程序,检查一些数据结构并让它继续。
显然,我可以让监督程序使用“perl -d myProcess”启动我的进程,但是如何让它在没有初始中断的情况下运行。有谁知道怎么做到这一点?
非常感谢。
答案 0 :(得分:7)
感谢。这是一个很大的暗示。我看到了几个选项,包括“NonStop”。
看起来使用行PERLDB_OPTS="NonStop" perl -d myprog.pl &
可以解决问题。然后我只需kill -INT <pid>
和fg
就可以在调试器中获取它。在我'继续执行'bg
后,它将继续执行。
答案 1 :(得分:2)
您还可以将此配置选项添加到.perldb文件中。配置文件的格式有点不寻常,并没有很好的记录,所以这里是
DB::parse_options("NonStop=1");
其他有用的选择:
DB::parse_options("dumpDepth=3");
DB::parse_options("PrintRet=0");
$DB::deep = 1000;