|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Sergey Krinitsin 2:5020/400 12 Jul 2004 13:58:02 To : Valentin Nechayev Subject : Re: gettimeofday -------------------------------------------------------------------------------- Hi Valentin Nechayev! On Sun, 11 Jul 2004 15:53:00 +0000 (UTC); Valentin Nechayev wrote: SK>> Понадобилось посмотреть на исходник сабжевой функции, find выдал SK>> следующее: [sergey@localhost glibc-2.3.2-20030312]$ find ./ -name SK>> 'gettimeofday.c' ./sysdeps/generic/gettimeofday.c ./sysdeps/mach/gettimeof SK>> day.c ./sysdeps/posix/gettimeofday.c ./sysdeps/unix/sysv/aix/gettimeofday. SK>> c ./sysdeps/unix/sysv/irix4/gettimeofday.c VN> В ядре надо искать. Это сисколл. VN> asmlinkage long sys_gettimeofday(struct timeval *tv, struct timezone *tz) VN> { VN> ... Действительно- 78'й сисколл, kernel/time.c VN> Glibc скорее всего для неё компилирует из шаблона ассемблерный VN> переходник, VN> аналогично прочим сисколлам. Переходник просто складывает аргументы в VN> регистры (или оставляет на стеке), грузит номер сисколла в %eax VN> и вызывает int 0x80. По возврату проверяет CF и ставит errno по VN> необходимости. Похоже что так, но это осложняет дело ;( Как можно перехватить данную функцию для определенного приложения? Если бы можно было модифицировать glibc, то достаточно было заюзать LD_PRELOAD, но это похоже весьма нетривиальное дело :( -- Good bye, Sergey Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru --- ifmail v.2.15dev5.3 * Origin: Talk.Mail.Ru (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/21697cdfbba66.html, оценка из 5, голосов 10
|