DebuggingEmacs_it

Introduzione

Esistono molteplici pacchetti di Emacs, collettivamente chiamati "Emacsen". Dipendono tutti da un pacchetto chiamato emacsen-common e sono divisi in versioni. Le versioni principali sono GNU Emacs (ossia Emacs FSF; emacs24, emac23 ecc.) e xemacs21. A loro volta sono divisi in più pacchetti, al fine di separare i componenti generici (per i quali un solo pacchetto è necessario) da quelli che dipendono dall'architettura del sistema e componenti consigliati tra quelli opzionali.

Se si desidera una versione Emacs, attualmente la più cosigliata e quella stabile, GNU Emacs (attualmente emacs24). Attualmente emacs-snapshot contiene una relativamente recente e non rilasciata versione dei sorgenti di sviluppo, ma è anche possibile ottenere versioni più recenti da un PPA o da altre risorse. xemacs21 è la versione più vecchia ed oramai non molto attivamente supportata.

Sono disponibile una moltitudine di pacchetti aggiuntivi, molti dei quali supportati in tutte le versioni, ed alcuni che forniscono nuovi e/o differenti versioni dei componenti normalmente inclusi in una installazione base, ad esempio Gnus.

Procedura di debugging

Se Emacs non funziona a dovere, provare ad eseguire emacs -Q per vedere se il problema svanisce. Questa istruzione disabilita la lettura del proprio file .emacs ed altre modifiche locali. Se il problema svanisce è dovuto a qualche personalizzazione locale.

Se si riceve un messaggio di errore da parte di Emacs, è possibile ottenere una traccia che mostri quali funzioni Lisp venivano processate al momento dell'errore. Abilitare il tracciamento con il comando M-: (setq debug-on-error t) ed allegare il file *Backtrace* alla segnalazione.

Logs dell'installazione

Per problemi durante l'installazione, è necessario esaminarne i file di log. Installando con synaptic o update-manager, il log del terminale non è necessario, basterà cercare le informazioni necessarie nei file di sistema. Se l'istallazione problematica è parte di un aggiornamento, il file di log da analizzare sarà /var/log/dist-upgrade/term.log; altrimenti cercare in /var/log/apt/term.log. Per fare ciò saranno necessari i permessi di amministrazione.

Errori dovuti all'installazione di pacchetti

Un apparente errore di Emacs è spesso dovuto all'installazione di qualche pacchetto aggiuntivo che contiene un bug o è incompatibile con la versione di Emacs installata.

`emacs-install: /usr/lib/emacsen-common/packages/install/ecb emacs23
` failed at /usr/lib/emacsen-common/emacs-install line 28, <TSORT> line 17.
`dpkg: error processing emacs23 (--configure):
` subprocess installed post-installation script returned error exit status 1

Che afferma che ecb ne è la causa (bug || 466531)

`dpkg: dependency problems prevent configuration of emacs:
` emacs depends on emacs23 | emacs23-lucid | emacs23-nox; however:
` Package emacs23 is not configured yet.
` Package emacs23-lucid is not installed.
` Package emacs23-nox is not installed.
`dpkg: error processing emacs (--configure):
` dependency problems - leaving unconfigured

Ciò significa che un problema precedente ha impedito l'installazione di emacs. È necessario andare a ritroso nel log file per capire cosa è successo.

Errori Byte-compilation

Un particolare tipo di errore durante l'installazione è il byte-compilation error. Con emacs22 ed emacs-snapshot il log nel terminal conterrà un messaggio come questo:

`!! Byte-compilation for <<flavor>> failed!`
`!! This indicates a bug in one of the add-on packages`
`!! installed on your system, or a bug in Emacs itself.`
`!! Please file a bug report against <<flavor>>`
`!! and attach the file /tmp/<<flavor>>.<<suffix>>`

Il nome del file sarà differente ogni volta. Questo file è necessario per l'analisi del problema.

Come segnalare bug

È possibile segnalare bug contro Emacs utilizzando Apport.

Esiste anche lo strumento M-x emacs-bug-report ma non è completamente adattato per l'invio di segnalazioni ad Ubuntu.

Bug tags

(Developers: please update this section)

Come eseguire il Triage

I bug riconosciuti da Apport sono generalmente dovuti a pacchetti che hanno fallito l'installazionee solitamente includono allegati i file DpkgTerminalLog o VarDistUpgradeTermLog; Questi file sono i primi da esaminare.

Molto probabilmente conterranno un messaggio d'errore, circa alla fine, che indicherà quale pacchetto ha fallito l'installazione e perchè.

Se questo file è mancante, deve essere richiesto. Vedere una delle seguenti risposte precompilate.

Se il messaggio indica un errore di byte-compilation in un pacchetto aggiuntivo (vedi sopra), il file temporaneo nel messaggio d'errore deve essere allegato alla segnalazione, se non lo è deve essere richiesto. Vedere una delle seguenti risposte precompilate.

Risposte generiche

TODO How to produce and attach a backtrace

Log del terminale mancante

Grazie per avere segnalato questo bug che ci aiuta a rendere Ubuntu migliore. Per poter analizzare questo problema è necessario allegare alla segnalazione il contenuto del file /var/log/apt/term.log.Ricordiamo che normalmente è necessario l'uso dei privilegi sudo per leggere o copiare questo file.

Se questo errore si è verificato durante un avanzamento di versione di ubuntu, il file da allegare sarà /var/log/dist-upgrade/apt-term.log

Ringraziamo anticipatamente!

Log Byte Compilation mancante

Se avete ancora questo file nel vostro sistema, vi preghiamo di allegarlo a questa segnalazione. Comunque i file nella directory /tmp vengono cancellati al riavvio; se il file è stato rimosso, è necessario ripetere l'operazione che ha generato l'errore per poter ottenere il suddetto file. Ricordiamo che il nuovo file generato avrà un nome leggermente diverso ogni volta; fare riferimento alla parte terminale di /var/log/apt/term.log per vedere il nome esatto del file generato. Sono necessari i privilegi sudo per leggere il logfile nel terminale.

TODO The Bugs/Responses page should include these replies.

Come avanzare

L' upstream fondamentale per i bug in Emacs è http://debbugs.gnu.org/ che esegue lo stesso software di Debian BTS. I pachetti Ubuntu sono generalmente derivati da Debian, quindi Debian è un valido upstream; e ovviamente per i bug della pacchettizzazione Debian è solitamente l'unico upstream.

Bug noti

Descrizione di bug noti che possono ricevere segnalazioni duplicate e come riconoscerle. questa informazioni possono essere ottenute indirizzando la ricerca ai bug taggati come "metabug".

Aperti

Bug

Soggetto

Sintomo

|| 466531 ||ecb incompatibile con emacs-23|| Il processo di post-installazione ha fornito un codice d'uscita diverso da zero. Ovviamente questa potrebbe non essere l'unica ragione.

Chiusi

Bug

Soggetto

Sintomo

467446

update-alternatives: error: alternative path /usr/bin/xemacs21 doesn't exist

Fixed in a recent version of xemacs21 but still affects people runnng older Ubuntu releases

464587

ocaml-mode: Invalid syntax description flag: "()1n"

Fixed in a recent version of ocaml but still affects people runnng older Ubuntu releases and xemacs21

222870

anjsp: Wrong number of arguments: require, 3

anjsp is not compatible with xemacs21. It no longer ships with Ubuntu but still affects people running older Ubuntu releases

396038

Group staff missing; Emacs installation failed

This rare error was never properly debugged, but it did occur more than once

Non-bug

Attualmente,basandoci su tutte le nostre conoscenze, questo non è un bug in Emacs, ma sovente si manifesta durante la sua installazione:

Bug

Soggetto

Sintomo

512096

Exec format error: package failed to install/remove

Seems to often affect emacsen-common -- 00debian-vars.el or similar file missing even though package apparently installed. See also bug #582341


CategoryBugSquad CategoryDebugging

DebuggingEmacs_it (last edited 2012-10-29 21:25:19 by fabiomarconi)