Комментарии 27
Может быть удобно использовать флаг -ff, который вместе с -o распределяет весь вывод по файлам с постфиксом ".%PID%"
Также стоит упомянуть и про -s — иначе все строки обрезаются до 32 символов, а иногда хочется иметь весь вывод, чтобы что-нибудь погрепать в нём.
Так ли нужен теперь dtrace когда eBPF шагает по планете? :)
Я не евангелист DTrace, это была больше шутка про несколько существующих портов и клонов под Линуксами.
Но при чем здесь eBPF? :-) Dtrace — полный комплект для трассировки и программирования поведения ядра, включающий как пользовательские утилиты, так и изменения в ядре ОС. eBPF же — достаточно низкоуровневая штука, сама по себе пользователям ничего не дающая.
Я понимаю референс и шутку, многие годы dtrace был неким философским камнем в мире трейсинга Linux, нюанс скорее в том, что вокруг eBPF уже выстроен тулинг, дающий намного больше возможностей чем strace и даже dtrace — например bpftrace или sysdig. Последний например у нас развернут по всей инфре и очень часто выручает.
Именно strace? Или системный вызов ptrace? Мне кажется, что есть более эффективные способы.
Гм. Все зависит от целей подмены.
Я вот сейчас обнаружил команду PTRACE_SYSEMU в man 2 ptrace и, пожалуй, в этом варианте оно неплохо будет работать, с единственным прыжком в код ядра.
Если же хочется как-то хитрее фильтровать всякое, то можно использовать продвинутые инструменты на базе BPF (тот же bpftrace).
Но вообще вы правы, лишь бы работало :-)
Вот уж воистину всякое приходится ковырять, да :-) Но, согласитесь, версии < 2.6 это вот прям действительно давно.
Да, я в курсе. Есть еще военные с их раритетами, и для них тоже куча всего разрабатывается.
В конце концов, принцип "работает — не трогай" никто не отменял. Хотя мало удовольствия в работе с такими законсервированными машинам.
Но мне как-то все равно было бы страшновато вокруг strace скриптом на Питоне работать :-)
На питоне иногда надо быстро собрать, чтобы показать MVP заказчику на его системе, погонять в пилотных условиях и получить полноценное финансирование для дальнейшего допиливания, используя более надежные/серьезные средства.
You are not expected to understand this
Кажется, это цитата не Денниса Ричи
Почему вам так кажется? :-)
Джон (если вы про John Lions) это автор сборника комментариев к исходномому коду шестой версии Unix. Эта книга у меня есть. Там параллельно, собственно, коду идут пояснения принципов работы Unix. Он использовал эту неофициальную книгу в качестве учебника. Сам код Unix Лайонс не писал совершенно точно, к Bell Labs отношение имел только косвенное.
Историю же знаменитого комментария в изложении самого Ричи можно посмотреть, например, по следующей ссылке: http://orkinos.cmpe.boun.edu.tr/~kosar/odd.html
Strace в Linux: история, устройство и использование