繁体   English   中英

有没有办法在通过 strace 运行时捕获子命令的退出代码?

[英]Is there a way to capture the exit code of the child command when run through 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")

Strace 将以与被跟踪程序相同的退出代码退出。 到现在为止还挺好。

open 看起来有点perlish,是我们说的perl 吗? 然后perldoc -f open这一点适用:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM