HOW-TO: Программа на Си. Часть 6 Сравнение версий

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
fullcircle:22:программа_на_си_ч6 [2010/04/12 23:50]
fullcircle:22:программа_на_си_ч6 [2010/04/14 00:30] (текущий)
Строка 86: Строка 86:
 </​code>​ </​code>​
 мы можем найти следующий кусок (некоторые пробелы пропущены):​ мы можем найти следующий кусок (некоторые пробелы пропущены):​
-**strlen("​www.google.com"​) ​ = 14*dcgettext(0,​ 0x8075c8a, 5, 0x804e66d, 0xbf8e1761) = 0x8075c8a*getaddrinfo("​www.google.com",​ NULL, 0xbf8e1780, 0xbf8e17b4) = 0*calloc(1, 20) = 0x909c1e0*malloc(96) = 0x909c1f8*freeaddrinfo(0x909c100) = <​void>​ +**strlen("​www.google.com"​) ​ = 14*dcgettext(0,​ 0x8075c8a, 5, 0x804e66d, 0xbf8e1761) = 0x8075c8a*getaddrinfo("​www.google.com",​ NULL, 0xbf8e1780, 0xbf8e17b4) = 0*calloc(1, 20) = 0x909c1e0*malloc(96) = 0x909c1f8*freeaddrinfo(0x909c100) = <​void>​ **
-**+
 Это то, что ltrace видит на этапе разрешения имени (DNS), рассмотренном нами ранее с помощью strace. Все сетевые коммуникации скрыты за простым вызовом '​getaddrinfo()'​. Это то, что ltrace видит на этапе разрешения имени (DNS), рассмотренном нами ранее с помощью strace. Все сетевые коммуникации скрыты за простым вызовом '​getaddrinfo()'​.
 Я надеюсь,​ что теперь вы оценили значение strace и ltrace. Они позволяют вам изучить внутреннее устройство исполняемых файлов - без дополнительных усилий - с одной лишь разницей:​ выполнение происходит немного медленнее,​ это позволяет вам понять,​ что делает приложение,​ и где что-то пошло не так. Я надеюсь,​ что теперь вы оценили значение strace и ltrace. Они позволяют вам изучить внутреннее устройство исполняемых файлов - без дополнительных усилий - с одной лишь разницей:​ выполнение происходит немного медленнее,​ это позволяет вам понять,​ что делает приложение,​ и где что-то пошло не так.
Строка 190: Строка 189:
 =====Выводы===== =====Выводы=====
 В этой статье я рассказал об утилитах,​ позволяющих легко найти и устранить неисправности в исполняемых файлах,​ без необходимости иметь их исходники или дополнительные знания о файлах. В следующий раз мы попытаемся немножко углубиться и затем посмотрим на настоящий отладчик. В этой статье я рассказал об утилитах,​ позволяющих легко найти и устранить неисправности в исполняемых файлах,​ без необходимости иметь их исходники или дополнительные знания о файлах. В следующий раз мы попытаемся немножко углубиться и затем посмотрим на настоящий отладчик.
- 
 =====Упражнения:​===== =====Упражнения:​=====
   * vmstat - утилита,​ печатающая отчёт об использовании виртуальной памяти;​ используя strace, определите,​ какие файлы из /proc/ используются при генерации вывода.   * vmstat - утилита,​ печатающая отчёт об использовании виртуальной памяти;​ используя strace, определите,​ какие файлы из /proc/ используются при генерации вывода.
Строка 217: Строка 215:
 </​style>​ </​style>​
  
-{{tag>​howto Си Програмирование Full_Circle}}+{{tag>​howto Си Программирование Full_Circle}}