Jump to content

Sviluppo/Domande Frequenti

From The Document Foundation Wiki
This page is a translated version of the page Development/FAQ and the translation is 100% complete.


Come fare il debug di LibreOffice?

Il punto cruciale è quello di passare il parametro --enable-debug allo script autogen.sh. Per maggiori dettagli ed avere aiuto al riguardo vedete Development/How to debug.

Che cosa sono tutti quei commenti #iXXXX#/fdo#XXXX/ecc.?

Cosa sono tutti quei test: unit test, smoketest, subsequent test?

La risposta a questa domanda è stata fornita da Bjoern Michaelsen in un post sulla mailinglist: http://lists.freedesktop.org/archives/libreoffice/2011-March/009834.html

Un "make check" a livello principale eseguirà per prima cosa una compilazione completa e poi eseguirà tutti i subsequent test, invece un "make subsequentcheck" a livello principale eseguirà solamente tutti i subsequent test.

Maggiori informazioni sugli unit test sono reperibili qui.

Lo smoketest è fallito, come eseguirne il debug

Se make dev-install, oppure la compilazione di smoketestoo_native fallisce, i file dell'istallazione che ha fallito lo smoketest rimangono nella cartella

solver/350/*/installation/opt/program/

Potete eseguire manualmente lo smoketest e controllare le celle evidenziate in verde/rosso nel report in modo da capire esattamente che cosa ha causato il fallimento.

cd solver/350/*/installation/opt/program/
 ./swriter

disabilitate la sicurezza delle macro, es. strumenti ▸ opzioni ▸ sicurezza ▸ sicurezza delle macro ▸ basso e chiudete libreoffice

./swriter $SRC_ROOT/smoketestdoc/*/bin/smoketestdoc.sxw

Fate clic sul pulsante start smoketest

Un'altra alternativa è quella di avviare soffice in anticipo e chiedere allo smoketest di collegarsi a quell'istanza, anziché avviarne una sua (vedete installationtest.mk: allow override of tested soffice process). Poi potete eseguire soffice.bin sotto il controllo del debugger. L'unico problema è che make smoketestoo_native normalmente sovrascrive l'istanza di soffice appena avviata con un nuovo set di installazione, ciò a causa della dipendenza di cpptest da localinstall in smoketestoo_native/makefile.mk. Quindi, qualcosa di simile a quanto segue, dovrebbe funzionare:

make smoketestoo_native # in case no solver/*/installation yet
sed -i 's/cpptest : localinstall/#&/' smoketestoo_native/makefile.mk
solver/*/installation/opt/program/soffice --accept=pipe,name=mytest\;urp &
# wait for soffice to come up, attach gdb, etc.
OOO_TEST_SOFFICE=connect:pipe,name=mytest make smoketestoo_native
git checkout smoketestoo_native/makefile.mk

Volendo compilare LibreOffice, ma essendo interessati solo a Writer, è possibile compilare solamente quest'ultimo senza tutto il resto?

La risposta sintetica è: no.

La risposta più dettagliata è che i moduli delle singole applicazioni di LibreOffice (Writer, Calc, Draw, Impress, ecc.) condividono la maggior parte del loro codice, al punto che la parte del modulo del livello principale corrisponde solamente a meno del 10% dell'intero codice. Perciò, anche se in qualche modo riusciste a saltare la compilazione di qualcuna delle applicazioni, il tempo complessivo per la compilazione non si ridurrebbe in modo significativo.

Oltre a questo, l'intera suite è progettata con il presupposto che siano sempre presenti i moduli di tutte le applicazioni. Quindi, se mancasse qualcuna di queste applicazioni, potrebbero creasi degli strani problemi, con i quali nessun altro potrebbe aiutarvi.

Su Windows, la compilazione fallisce con un errore interno del compilatore

fatal error c1001: An internal error has occured in the compiler

Dovete verificare di avere l'ultimo aggiornamento di Visual Studio.

Controllate gli aggiornamenti su Microsoft search.