perl ptkdb跟随进入系统调用

perl ptkdb跟随进入系统调用,perl,debugging,system,Perl,Debugging,System,我正在运行Perl的ptkdb调试器。 我正在使用system()从脚本中运行脚本;功能。 但是我不可能进入系统调用,调试器只是跳过它。 如何让调试器真正调试系统调用中发生的事情?system()派生一个进程并将其作为shell命令运行。Perl调试器不会从Perl父进程跟踪到分叉的shell命令 可用于调试此部件的步骤: 1) 您可以调试shell调用本身,它是否正在做您期望它做的事情?(手动运行,从strace/dtrace运行) 2) 您可以打印发送给它的任何变量。您的变量传递是否正确 3

我正在运行Perl的ptkdb调试器。 我正在使用system()从脚本中运行脚本;功能。 但是我不可能进入系统调用,调试器只是跳过它。 如何让调试器真正调试系统调用中发生的事情?

system()派生一个进程并将其作为shell命令运行。Perl调试器不会从Perl父进程跟踪到分叉的shell命令

可用于调试此部件的步骤:

1) 您可以调试shell调用本身,它是否正在做您期望它做的事情?(手动运行,从strace/dtrace运行)

2) 您可以打印发送给它的任何变量。您的变量传递是否正确

3) 您可以检查命令的返回,以查看它是否正在执行您想要的操作

另外,您确定system()是您想要的吗?从perldoc系统:

这不是你想要用来做的 捕获命令的输出,例如 你应该只使用反勾号 或qx/,如中的
字符串
中所述
佩洛普。返回值-1表示
未能启动程序或错误
等待(2)系统调用错误
(检查$!以了解原因)


是的,我确信这就是我想要的,有时创建子进程是必要的,然后能够调试它们会很方便。试试看,你会得到一个xterm窗口。