Как сделать процесс в состоянии T (трассировка) в Linux?

Вместо того, чтобы использовать строку в качестве аргумента командной строки, вы можете просто использовать catдля чтения стандартного ввода скрипта:

printf '%s\n' "$foo"
if [ "$bar" = "-" ]; then
    # assume data is on standard input
    cat
else
    print '%s\n' "$bar"
fi
2
13.08.2019, 02:13
1 ответ

Вы, кажется, перепутали Tс t. Изman ps:

               T    stopped by job control signal
               t    stopped by debugger during the tracing

В любом случае, чтобы перевести процесс в состояние T(, остановите ), kill -STOPего PID или нажмите Ctrl+Z во время его работы в терминале. Чтобы перевести процесс в состояниеt(трассируемого ), присоединитесь к нему с помощью ptrace, но не позволяйте ему продолжаться, как это делает strace. Один из способов сделать это — запустить gdb, затем attachдля его PID.

3
27.01.2020, 22:02

Теги

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