ltrace
![]() | В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
ltrace — это утилита отладки в Linux , используемая для отображения вызовов приложения пользовательского пространства к разделяемым библиотекам . Это делается путем подключения к системе динамической загрузки , позволяющей вставлять прокладки , которые отображают параметры , которые приложения используют при выполнении вызова, и возвращаемое значение , о котором сообщает вызов библиотеки. ltrace также может отслеживать системные вызовы Linux . Поскольку ltrace использует механизм перехвата динамических библиотек, он не может отслеживать вызовы библиотек, которые статически связаны непосредственно с целевым двоичным файлом. Начиная с версии 0.7.3, ltrace также может отслеживать вызовы библиотек, которые загружаются с помощью dlopen .
Пример вывода
[ редактировать ]Ниже приведены первые несколько строк вызова хтерм . Он показывает, как ltrace отображает вызовы различных библиотек, включая стандартную библиотеку C (malloc, strlen), библиотеки POSIX (getuid), X Toolkit Intrinsics (XtOpenApplication) и библиотеку межклиентского взаимодействия X11 (IceAddConnectionWatch). Возвращаемое значение вызова отображается после символа =.
[pid 11783] __libc_start_main(0x407420, 1, 0x7fff75b6aad8, 0x443cc0, 0x443d50 <unfinished ...>
[pid 11783] geteuid() = 1000
[pid 11783] getegid() = 1000
[pid 11783] getuid() = 1000
[pid 11783] getgid() = 1000
[pid 11783] setuid(1000) = 0
[pid 11783] malloc(91) = 0x00cf8010
[pid 11783] XtSetLanguageProc(0, 0, 0, 0x7f968c9a3740, 1) = 0x7f968bc16220
[pid 11783] ioctl(0, 21505, 0x7fff75b6a960) = 0
[pid 11783] XtSetErrorHandler(0x42bbb0, 0x44f99c, 0x669f80, 146, 0x7fff75b6a72c) = 0
[pid 11783] XtOpenApplication(0x670260, 0x44f99c, 0x669f80, 146, 0x7fff75b6a72c) = 0xd219a0
[pid 11783] IceAddConnectionWatch(0x42adc0, 0, 0, 0x7f968c9a3748, 0 <unfinished ...>
[pid 11783] IceConnectionNumber(0xd17ec0, 0, 1, 0xcfb138, 0xd17c00) = 4
[pid 11783] <... IceAddConnectionWatch resumed> ) = 1
[pid 11783] XtSetErrorHandler(0, 0, 1, 0xcfb138, 0xd17c00) = 0
[pid 11783] XtGetApplicationResources(0xd219a0, 0x6701c0, 0x66b220, 34, 0) = 0
[pid 11783] strlen("off") = 3
См. также
[ редактировать ]- strace — трассировщик системных вызовов для Linux
- ktrace — трассировщик системных вызовов для *BSD
- truss — классический трассировщик системных вызовов
- DTrace — инструмент трассировки ядра Solaris/OS X/BSD/Windows.
- SystemTap — инструмент трассировки ядра Linux
Внешние ссылки
[ редактировать ]- Официальный сайт
- Linux по основным командам Руководство –
- Родриго Рубира Бранко, Ltrace Internals , Симпозиум Linux в Оттаве , 2007 г.
- latrace , трассировщик вызовов динамической библиотеки, который работает с использованием функции libc LD_AUDIT.