apport Ubuntu

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

StableReleaseUpdate система (ЕП). Пътуване на грешката до неговото отстраняване.



apport Ubuntu


Какво е това и защо е?

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

Apport - една система, която:

  • Когато прихванати от първата капка в програмата, има колекция от потенциално необходима информация за провала и за околната среда на операционната система.
  • Тя може да се извиква автоматично при необработено изключение (необработени изключения) в най-различни езици за програмиране. В Ubuntu, например, за да направите това, включително за Python.
  • Тя може да бъде автоматично извиква да се справи с всички проблеми, които могат да бъдат открити автоматично. Ubuntu, например, автоматично откриване на грешки по време на инсталацията и ъпгрейд пакети в актуализация-мениджър.
  • Тя осигурява интерфейс, който информира потребителя за инцидента и инструктира как да се процедира.
  • Можете да създадете отчет (не е грешка) за конкретно приложение, разработчикът е получил информация за версията, операционна система и т.н.

Apport позволява в бъдеще значително да се повиши нивото на качеството на програмите.

Ако предприемачът иска да направи доклади за падането на програмата още по-добре, е необходимо да се обърнете към DeveloperHowTo.

Както изглежда за потребителя?

Apport от страна на потребителя е много проста и не натрапчиви.

Apport автоматично ще бъдат причинени от:

  • Ако всеки процес в системата умре тъкмо навреме, наречена катастрофа. Така например нарушаване на сегментиране = сигнал 11 = SIGSEGV = сегментиране вина = sig11 = segfault или автобусни грешки = SIGBUS или изключване в работата на плаваща запетая = плаваща запетая изключение = SIGFPE и др.
  • Python програма е незабелязана изключение (неуловено Изключение).

Налице е създаването на оригиналния доклад за грешка в директорията / реактивна / катастрофата. Името на файла се генерира от пътя към падналия програма и потребителя.

Ако паднал процес "принадлежи" на потребителя, който в момента е влязъл в, така и в процеса на системата и системата влезе администратор, Apport информирани за инцидента и предлага да докладва за проблема на разработчиците.

apport Ubuntu

apport Ubuntu

Ако потребителят не излезе от квадратчето до "Изпратете доклад за проблема в системата за проследяване на грешки", Apport след това изпраща тази информация на системата за следене на грешки. След това се отваря в грешките тракер сайта на браузъра по подразбиране, които потребителят може да добави нещо от неговата.

Как да се даде възможност на Apport и защо е изключена по подразбиране?

Apport е изключена по подразбиране в стабилни версии, дори и ако има такава. Apport компонент, който осигурява автоматично прихващане попада програми офлайн в стабилни версии за редица причини:

  • Apport събира данни във файлове, които могат да съхраняват поверителни данни. Файловете могат да бъдат пароли, номера на кредитни карти и други лични данни. Част от проблема се заглажда с факта, че 1) може да се види ясно, че ще бъдат изпратени, и 2) всички доклади за грешката по подразбиране се смята за частни, което налага някои ограничения върху грешката Ubuntu triaging екип екип. От разработчиците и от технически грамотни потребители, които използват версия на развитие, може да се очаква компетентните решения, които могат и трябва да бъдат изпратени в доклад. Но от обикновените потребители на стабилни версии никой не го очаква. В Ubuntu 12.04 или по-късно - в момента призрачен демон обработват Олеле. Обърнете се към ErrorTracker.
  • По време на разработването на нова версия на Ubuntu, разработчиците получават хиляди съобщения за проблеми, много повече, отколкото може да бъде поправена. Продължи да ги събере в една стабилна версия не е толкова полезна, защото:
    • Установено е, че най-важните грешки по време на разработването на тази версия.
    • Най-маловажно от тях не са подходящи за определена статут в стабилна версия.
    • Ние искаме от тях да изпрати доклада за лицемерен, защото не можем да помогнем на всички и не може да даде отговор.
  • Събирането на данни Apport'om отнема циклите на процесора и I / O, която може да забави вашия компютър и няма да позволи на падналия да рестартирате програмата за известно време.

Имайте предвид, че не Apport прихваща SIGABRT сигнал. Ако програмата получава точно такъв сигнал, трябва да се запознаете с DebuggingProgramCrash.

Ubuntu 12.04 и по-късно.

Започвайки с Ubuntu 12.04 освобождаване, Apport работи непрекъснато за програми падения за събиране на данни за Олеле демон (виж ErrorTracker).

Въпреки това, Apport компонент, който осигурява автоматично прихващане попада програми все още са изключени. За да може да направите:
Sudo -e /etc/apport/crashdb.conf
и добавяне на хеш символа # в началото на реда

За да забраните на компонента - премахване хеш символа #.

Инструменти.

Има няколко инструменти за работа със съобщения за грешки:

  • Ubuntu грешки модели. образците на пакетите. написана от Ubuntu Bug Control екип, за да се предотврати създаването на дублиращи се грешки в тракера. XML файлове, които са написани с едно око, за да разширяват функционалността в бъдеще.
  • apport-разопаковането. Тя разделя доклада на отделни файлове, един за всеки атрибут. Това е полезно за извличане на сметище. Този инструмент не е необходимо, когато се работи с Launchpad, тъй като има използва MIME, и вече всичко разделена на отделни прикачени файлове.
  • apport-Проследете. доклада осигурява следа от стека на повикване, когато грешка на програмата. С преминаването -G автоматично изтеглени пакети с отстраняване на грешки символи и направи стека чрез символите за отстраняване на грешки.
  • питон-проблем-доклад. Този пакет съдържа Python PROBLEM_REPORT модул, който осигурява общ достъп до доклада за речника грешка.
  • питон-apport. в този пакет е капсулиран и основните характеристики на Apport дефинирани отчети за грешки и падения. Можете да приложат свои собствени входни блокове и Неуспех.
  • apport-събира. проверки за съществуващ източник на пакет от Launchpad бъг куки Apport започва и попълва данните обратно към тракера бъг.

Как работи?

Apport използва / ргос / сис / ядро ​​/ core_pattern за сметището.

$ Cat / ргос / сис / ядро ​​/ core_pattern
| / ЮЕсАр / акции / apport / apport% р% S% в

Имайте предвид, че дори ако забраните създаването на сметища файлове през ulimit -c 0, apport продължава да прихване катастрофи.

За да прихване необработено изключения в програмите Python са наричали /etc/python*/sitecustomize.py Apport.

За да се забави и натоварването на процесора и I / O е възможно най-малък, / ЮЕсАр / акции / apport / apport събира данни само когато процесът на инцидента все още съществува в паметта. Информация от / Proc / PID. сметища, пътя до изпълнимия файл, броят на сигнала се записва в /var/crash/executable_path.uid_user.crash.

Обадете се на интерфейса на.

Актуализация-нотификатор използване inotify часовници за директорията / реактивна / катастрофа / на. Ако има появява нещо ново, то е / ЮЕсАр / акции / apport / apport-checkreports. Ако има нови съобщения, той се нарича / ЮЕсАр / акции / apport / apport-GTK, в който се показва на прозореца е показано по-горе.

Самата за Входния и събира допълнителна информация за системата версия на версията, операционна, и то е необходимо куки за тази програма.

За да изключите, можете да започнете
gsettings определени com.ubuntu.update уведомление, шоу-apport-катастрофи фалшива

Куки Apport.

Можете да посочите, че трябва да се определи по-, когато създавате отчет за конкретна програма. Това се постига чрез куки Apport.

Например директорията / ЮЕсАр / акции / apport / пакетни кукички /:

  • source_xorg.py - Добавяне на собствен доклад лог файлове и подробности за оборудването.
  • Инсталиране: - игнорира есента за по определен начин.
  • source_totem.py - задава въпроси, и въз основа на тях да се събере допълнителна информация.

Ако грешка или катастрофа доклад се изпраща чрез Apport, необходимите куките се наричат ​​автоматично. Ако има грешка, проектирана от Apport, а вие се интересувате от информацията, предоставена от кука, можете да използвате apport-събиране bugnumber. Повече информация по този въпрос в Tools.

Бъдещите планове.

Очакваното подобрение в скоростта на събиране на данни и интеграция с бо # X301; lshim брой езици (проследяване стека с обаждане на Mono и Python, твърдят () и други мнения).

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

Изключване от доклад споменаването на трети страни пакети.