我在Emacs中使用perldb调试Perl脚本(在Linux上)。它的效果很好,但是当我调试一个分叉的脚本时就会出现问题。如果我的脚本执行了“fork”,我会得到这个错误信息:
######### Forked, but do not know how to create a new TTY. #########
由于两个调试器争夺同一个TTY,输入会被严重缠绕。
我知道如何将输出切换到xterms和OS/2控制台中的不同窗口。对于手动切换,请将创建的TTY名称放入$DB::fork_TTY中,或定义一个返回此内容的函数DB::get_fork_TTY()。
在类Unix系统上,可以通过键入tty获取给定窗口的TTY名称,并通过sleep 1000000断开shell与TTY的连接。
我真的希望能够选择一个进程(父进程或子进程)并继续调试该进程,同时允许另一个进程继续运行而不受影响。
一个目标是找到一种方法来明确地继续调试两个进程,可能需要在Emacs中打开额外的控制和代码窗口。但是,能够干净地继续调试其中一个进程将是一个巨大的收获。
在perldb中有没有这样的方法?我尝试按照这条消息中的建议进行操作,但没有进展。
还是我需要其他Perl调试工具?如果是后者,哪个Perl调试器提供最好的多进程调试支持?
######### Forked, but do not know how to create a new TTY. #########
由于两个调试器争夺同一个TTY,输入会被严重缠绕。
我知道如何将输出切换到xterms和OS/2控制台中的不同窗口。对于手动切换,请将创建的TTY名称放入$DB::fork_TTY中,或定义一个返回此内容的函数DB::get_fork_TTY()。
在类Unix系统上,可以通过键入tty获取给定窗口的TTY名称,并通过sleep 1000000断开shell与TTY的连接。
我真的希望能够选择一个进程(父进程或子进程)并继续调试该进程,同时允许另一个进程继续运行而不受影响。
一个目标是找到一种方法来明确地继续调试两个进程,可能需要在Emacs中打开额外的控制和代码窗口。但是,能够干净地继续调试其中一个进程将是一个巨大的收获。
在perldb中有没有这样的方法?我尝试按照这条消息中的建议进行操作,但没有进展。
还是我需要其他Perl调试工具?如果是后者,哪个Perl调试器提供最好的多进程调试支持?
@z=\
program and args`;` 运行CLI程序。在调试过程中从未出现过这个消息。发生了什么?总命令字符串长度为274个字符。在Ubuntu 18.04下会有问题吗? - Bulrush