apport ubuntu

Deoarece timpul de Ubuntu 6.10 cu noi prezentăm Asistent Apport invizibil, a cărui sarcină competent să emită un raport de eroare pentru a programului căzut. Apport în Ubuntu - un reporter accident clasic, care permite pentru a determina cauza căderii programului și corectați-l în versiunea următoare. Apport - o punte de legătură între dezvoltator de software și utilizatorul, care are un program de calculator nu se comportă așa cum doriți.

Sistemul StableReleaseUpdate (SRU). Călătorind pe eroare la corectarea acesteia.



apport ubuntu


Ce este si de ce?

Debugging un program de accident, fără instrumente automate foarte consumatoare de timp pentru utilizatori. O mulțime de eșecuri pe programe de calculator ale utilizatorului au rămas fără un raport dezvoltatorul programului și, prin urmare, nici o corecție, deoarece:

Apport - un sistem care:

  • Atunci când interceptat de prima picătură în program, există o colecție de informații potențial necesare despre eșecul și despre mediul sistemului de operare.
  • Acesta poate fi numit în mod automat atunci când o excepție netratată (excepții netratate de tip), într-o varietate de limbaje de programare. În Ubuntu, de exemplu, pentru a face acest lucru, inclusiv pentru Python.
  • Acesta poate fi invocat în mod automat pentru a face față oricăror probleme care pot fi detectate automat. Ubuntu, de exemplu, detectează automat erorile în timpul instalării și actualizarea pachetelor în update-manager.
  • Acesta oferă o interfață care informează utilizatorul despre accident și dă instrucțiuni cu privire la modul de a proceda.
  • Puteți crea un raport (nu un defect) pentru o anumită aplicație, dezvoltatorul a primit informații despre versiunea, sistemul de operare, etc.

Apport permite pe viitor să ridice semnificativ nivelul calității programelor.

În cazul în care dezvoltatorul dorește să facă rapoarte despre căderea programului chiar mai bine, este necesar să se facă referire la DeveloperHowTo.

După cum se arată la utilizator?

Apport de către utilizator este foarte simplu și nu intruziv.

Apport vor fi cauzate în mod automat de:

  • În cazul în care orice proces în sistem mor pe tac, numit accident. De exemplu, o încălcare de segmentare = semnal 11 = SIGSEGV = eroare de segmentare = sig11 = segfault sau autobuz erori = SIGBUS sau excludere în operarea în virgulă mobilă = virgulă flotantă excepție = SIGFPE și altele.
  • Programul Python este o excepție neînregistrată (Excepție negestionat).

Există o creație a raportului de eroare original în directorul / var / accident. Numele fișierului este generat de calea către program și utilizator ID-ul scăzut.

În cazul în care procesul căzut „aparține“ pentru utilizatorul care este în prezent autentificat sau procesul sistemului și sistemul a fost administrator, Apport informat despre accident și oferă pentru a raporta problema la dezvoltatorii.

apport ubuntu

apport ubuntu

În cazul în care utilizatorul părăsește caseta de lângă „Trimite un raport despre problema în sistemul de urmărire a erorilor,“ Apport trimite apoi aceste informații pentru sistemul de urmărire a erorilor. Apoi se deschide în browser-ul implicit erori de site-ul tracker pe care utilizatorul poate adăuga ceva din propriul său.

Cum să activați Apport și de ce este dezactivată în mod implicit?

Apport este dezactivată în mod implicit în versiunile stabile, chiar dacă este instalat. Apport componentă care asigură interceptarea automată intră programe offline în versiuni stabile pentru mai multe motive:

  • Apport colectează date în fișiere, care poate stoca date confidențiale. Fișierele pot fi parole, numere de cărți de credit și alte date private. O parte a problemei este netezită de faptul că 1) puteți vedea în mod clar că va fi trimis, și 2) toate rapoartele privind eroarea implicită este considerată privată, care impune anumite restricții cu privire la bug-ul Ubuntu triaging echipei. De la dezvoltatori și de la utilizatorii pasionați de tehnologie care utilizează eliberarea de dezvoltare, vă puteți aștepta ca soluții competente, care pot și ar trebui să fie transmise într-un raport. Dar, de către utilizatorii obișnuiți ai versiuni stabile nimeni nu se așteaptă. În Ubuntu 12.04 sau mai târziu - demon prezent fantomatic prelucrate Hopa. Consultați ErrorTracker.
  • În timpul dezvoltării unei noi versiuni Ubuntu, dezvoltatorii primesc mii de rapoarte despre probleme, mult mai mult decât pot fi corectate. Continua pentru a le colecta într-o versiune stabilă, nu este atât de utilă deoarece:
    • Cele mai semnificative erori au fost găsite în timpul dezvoltării acestui comunicat.
    • Cel mai puțin importantă dintre ele nu sunt potrivite pentru statutul fixat în versiunea stabilă.
    • Cerem utilizatorilor să trimită rapoarte de eroare pentru a fi ipocrit, pentru că nu putem ajuta pe toți și nu pot da un răspuns.
  • Colectarea datelor Apport'om ia ciclurile CPU și I / O, care poate încetini computerul dumneavoastră și nu va permite scăzut pentru a reporni programul de ceva timp.

Rețineți că nu Apport interceptările semnal SIGABRT. În cazul în care programul primește doar un astfel de semnal, trebuie să vă familiarizați cu DebuggingProgramCrash.

Ubuntu 12.04 și mai târziu.

Începând cu Ubuntu 12.04 de presă, Apport rulează în mod continuu pentru programele coborâșuri de colectare a datelor pentru daemon Hopa (a se vedea ErrorTracker).

Cu toate acestea, Apport componentă care asigură interceptarea automată se încadrează programele sunt încă dezactivate. Pentru a putea să facă:
sudo -e /etc/apport/crashdb.conf
și se adaugă simbolul diez # la începutul liniei

Pentru a dezactiva componenta - îndepărtați simbolul diez #.

Instrumente.

Există mai multe instrumente pentru lucrul cu rapoarte de erori:

  • modele Bug Ubuntu. template-uri pentru pachetele. scris de Ubuntu echipa de control Bug pentru a preveni crearea de bug-uri duplicat în tracker. fișiere XML, care sunt scrise cu un ochi pentru a extinde funcționalitatea în viitor.
  • apport-despacheta. Acesta împarte raportul în fișiere separate, câte unul pentru fiecare atribut. Acest lucru este util pentru preluarea benă. Acest instrument nu este necesară atunci când se lucrează cu Launchpad, deoarece există utilizări MIME, și deja toate împărțite în atașamente separate.
  • apport-retrace. raportul oferă o urmă de stiva de apel atunci când eroarea de program. Cu comutatorul -g descărcate automat pachetele cu simboluri de depanare și a făcut stivă urme folosind simbolurile de depanare.
  • python-problemă-raport. Acest pachet conține Python modul PROBLEM_REPORT, care oferă un acces comun la raportul de eroare dicționar.
  • python-apport. în acest pachet este încapsulat și principalele caracteristici ale Apport definite rapoartele de eroare și coborâșuri. Puteți implementa propriile frontend si backend.
  • apport-colecta. verificări pentru un pachet de sursă existent pe cârlige bug Launchpad Apport începe și se umple datele înapoi la tracker bug.

Cum funcționează?

Apport utilizează / proc / sys / kernel / core_pattern pentru groapa de gunoi.

$ Cat / proc / sys / kernel / core_pattern
| / Usr / share / apport / apport% p% s% c

Rețineți că, chiar dacă dezactivați crearea de fișiere basculante prin intermediul ulimit -c 0, apport continuă să intercepteze accidente.

Pentru a intercepta nemanipulabilă excepții în programele Python utilizate pentru a apela /etc/python*/sitecustomize.py Apport.

Pentru a întârzia și sarcina pe CPU și I / O este cât mai mic posibil, / usr / share / apport / apport colectează date numai în cazul în care procesul de incident există încă în memorie. Informații de la / proc / pid. halde, calea către fișierul executabil, numărul de semnal este înregistrat în /var/crash/executable_path.uid_user.crash.

Call Frontend.

Actualizați-notifier folosind Inotify ceasuri pentru directorul / var / accident /. Dacă apare ceva nou, este / usr / share / Apport / Apport-checkreports. Dacă există rapoarte noi, este numit / usr / share / apport /-apport GTK, care afișează fereastra ilustrată mai sus.

Frontend-ul în sine și colectează informații suplimentare despre versiunea sistemului de versiune, de operare, și este cârlige necesare pentru acest program.

Pentru a dezactiva, puteți începe
gsettings set com.ubuntu.update-Notificatorului show-Apport-accidente false

Hooks Apport.

Puteți specifica că trebuie să specificați în continuare atunci când creați un raport pentru un anumit program. Acest lucru se face prin cârlige Apport.

De exemplu, directorul / usr / share / Apport / pachet-cârlige /:

  • source_xorg.py - adăugați fișiere jurnal de rapoarte și detalii despre echipamentul.
  • usplash - ignora toamna pentru un anumit mod.
  • source_totem.py - pune întrebări, și pe baza acestora pentru a aduna informații suplimentare.

În cazul în care un raport de eroare sau de avarie este trimis prin intermediul Apport, cârligele necesare sunt numite în mod automat. Dacă există un bug proiectat de Apport, și sunteți interesat de informațiile furnizate de cârlig, puteți utiliza bugnumber-apport Collect. Mai multe informații despre această problemă în Instrumente.

Planuri de viitor.

Îmbunătățirea așteptată a vitezei de colectare a datelor și integrarea cu bo # X301; lshim numărul de limbi (calc stiva de apel mono si Python, afirma () și alte posturi).

Colectarea de alte informații interesante pentru raport, dar în același timp, să păstreze dimensiunea haldei în limite rezonabile.

Excluderea din raportul menționare a pachetelor terțe părți.