通过strace运行时,是否可以捕获子命令的退出代码?

时间:2019-04-09 15:29:09

标签: perl phpunit strace

我正在尝试使用strace跟踪运行单元测试中涉及的文件。执行此操作时,是否有办法捕获测试运行的退出代码?

@cmd="php -d auto_prepend_file=auto_prepend_for_tests.php /data/tests/sdk/bin/phpunit.phar --configuration /data/tests/conf/database.xml
 my_test.php"
open(IN, "-|", "strace -ff $pid -e trace=file @cmd 2>&1")

1 个答案:

答案 0 :(得分:1)

Strace将以与被跟踪程序相同的退出代码退出。到目前为止一切顺利。

开放看起来有点冷淡,是我们所说的perl吗? 然后来自perldoc -f open的这一位适用:

  

关闭任何管道文件句柄会使父进程等待   子完成,然后以$返回状态值?和   “ $ {^ CHILD_ERROR_NATIVE}”。

是的,您可以通过调用close IN并查看$?中的值来获取代码。

相关问题