PID ошибки порождения процесса

, двоичные вложения должны быть закодированы как ASCII, и это обычно разворачивает их с 20-25%.

у Вас будет та проблема расширения с любой почтовой программой, командной строкой или нет. Можно легко протестировать это при помощи тандерберда и отправки файла через Google (или поставщик).

1
02.09.2014, 07:02
1 ответ

Оказывается, управление заданием включения делает трюк - но только если нет ловушки SIGSEGV, настройка, которая предотвращает многословный вывод.

set -o errexit
set -o pipefail
set -o monitor
trap 'echo "ERR $?"' ERR
echo "hi" | ./docrash | cat
echo "not reached"

Запуск этого дает именно тот выход, который я искал, и даже больше. Он печатает PID для каждого дочернего элемента и показывает ошибку:

$ ./err.sh >& err.log
$ cat err.log
./err.sh: line 21: 25110 Done                               echo "hi"
                   25111 Segmentation fault (core dumped) | ./docrash
                   25112                                  | cat
ERR  139
$ gdb docrash core.25111
...

Настройки могут быть объединены, если вы хотите увидеть сбои в трубе, но не прерывать сценарий, который работает:

set -o pipefail
set -o monitor
echo "hi" | ./docrash | cat
echo "pipe returned $?"

Печатает трассу и продолжает:

$ ./err.sh
./err.sh: line 21: 25110 Done                               echo "hi"
                   25111 Segmentation fault (core dumped) | ./docrash
                   25112                                  | cat
pipe returned 139
0
28.01.2020, 01:54

Теги

Похожие вопросы