Re: dtrace выдает нулевые значения
Maxim Dounin
mdounin на mdounin.ru
Чт Июл 1 15:55:33 UTC 2021
Hello!
On Thu, Jul 01, 2021 at 09:31:01AM -0400, chaturanga wrote:
> Максим, а можете подсказать для какой версии nginx скрипт будет актуален.
> Попробовал
> nginx/1.16.0
> nginx/1.4.6
> Результаты также пустые/нулевые.
Статья была добавлена в октябре 2012 года
(https://hg.nginx.org/nginx.org/rev/5182e655d055), так что
приведённый в качестве примера скрипт, вероятнее всего, актуален
для версий в районе nginx 1.3.7.
Впрочем, сейчас вот попробовал обновить скрипт - и в добавок,
похоже, как минимум на FreeBSD лезут проблемы с выравниванием
(скажем, DTrace почему-то пытается выравнивать off_t на 16 байт на
32-битных платформах) и с битовыми полями (каждое битовое поле,
похоже, DTrace пакует в 1 байт, не пытаясь их объединять), что
приводит к некорректным размерам структур ngx_http_headers_in_t и
ngx_http_headers_out_t. И соответственно к некорректным смещениям
используемых в скрипте полей request_line и start_sec. Если
руками задать правильные размеры - начинает работать.
--
Maxim Dounin
http://mdounin.ru/
Подробная информация о списке рассылки nginx-ru