Как се правят трупи

Съдържание:

Как се правят трупи
Как се правят трупи

Видео: Как се правят трупи

Видео: Как се правят трупи
Видео: 10 Случаев, Когда Люди Очнулись во Время Собственных Похорон 2024, Може
Anonim

Един от основните начини за диагностициране на неизправности в работата на софтуера, който вече се изпълнява на компютъра на потребителя, е воденето на дневници на събития - дневници. Обикновено те записват информация за стартирането, както и важна информация за състоянието на процеса и системната среда в случай на критичен отказ. Можете да създавате дневници както със собствени средства, така и с помощта на специални услуги на операционни системи.

Как се правят трупи
Как се правят трупи

Необходимо е

  • - преводач от използвания език за програмиране;
  • - евентуално SDK за платформа на Windows;
  • - вероятно пакет за разработка на glibc.

Инструкции

Етап 1

Анализирайте условията за използване и измислете изискванията за разработената подсистема, компонент или библиотека, които ще правят дневници. Отговорете на въпросите за коя платформа или платформи трябва да работи, какъв ще бъде нейният API.

Стъпка 2

В съответствие с идентифицираните функционални функции и предоставения API създайте шаблон за подсистемата за регистриране. Започнете да прилагате неговата функционалност.

Стъпка 3

Най-простият вариант за регистриране е да се създават независимо файлове на място, определено от конфигурацията на приложението, и след това да се записват данни във всякакъв формат към тях. Използвайте стандартни библиотечни функции на C (fopen, fclose, fwrite), обекти на стандартни библиотечни потоци C ++ (ofstream), използвани рамкови класове (като CFile, QFile) или API функции на операционна система (CreateFile, WriteFile на Windows).

Стъпка 4

Внедрете регистриране с помощта на API на syslog в UNIX-съвместими операционни системи. Функциите на API на syslog са декларирани в заглавния файл syslog.h. Свържете го на правилното място в изходния код на вашия проект.

Стъпка 5

Свържете се с услугата syslog, като използвате извикване на функцията openlog. Като параметри му предайте указател на низ, съдържащ идентификатора на приложението или компонента, който ще пише, флагове за опции и маска на събития, които трябва да бъдат предадени в дневника. Използвайте повиквания към функциите syslog и vsyslog, за да добавяте записи към дневника. Обадете се на функцията за затваряне, за да прекъснете връзката с услугата. Един прост пример за код на syslog може да бъде: openlog ("prefix", LOG_NDELAY | LOG_CONS | LOG_PID, LOG_LOCAL1); syslog (LOG_INFO, "% s", "Info"); syslog (LOG_NOTICE, "% s", "Notice"); closelog (); Има смисъл да се свържете със syslog, когато инициализирате приложението, и да изключите, когато изключите.

Стъпка 6

В операционни системи Windows използвайте API на EventLog, за да добавяте записи към системните дневници. Извикайте RegisterEventSource, за да получите дескриптора на регистрационния файл на посочената машина. Използвайте този манипулатор, когато извиквате функцията ReportEvent, която пише в дневника. Когато приключите, обадете се на DeregisterEventSource, за да затворите връзката и да освободите ресурсите, разпределени от RegisterEventSource. Най-простият пример за работа с EventLog може да бъде: HANDLE h =:: RegisterEventSource (NULL, "AnySource"); ASSERT (h! = NULL);:: ReportEvent (h, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 3, 0, "Text1Text2Text3", NULL);:: DeregisterEventSource (h); Както при syslog, има смисъл да се извика RegisterEventSource при стартиране и DeregisterEventSource при изключване на приложението.

Препоръчано: