Re: Migliorare Debian e il software libero: trovare bug con valgrind e scrivere le patch
Il 2020-11-29 09:18 Davide Prina ha scritto: Se invece hai una variabile che non è inizializzata, ma non è usata (in nessun caso d'uso del programma), allora quella variabile è inutile e andrebbe tolta. Direi che il programmatore può tranquillamente decidere di lasciare questo banale compito di ottimizzazione al compilatore :-) Ĝis, m
Re: Migliorare Debian e il software libero: trovare bug con valgrind e scrivere le patch
Il 2020-11-29 01:11 Sabrewolf ha scritto: Il 28/11/20 17:47, Marco Bodrato ha scritto: Le variabili non inizializzate, non sono un bug se il loro valore non viene usato :-) Ma anche no :) int f(const char *s, int *p){ return (s && atoi(s)%2) ? 12345 : (*p = 54321)%1; } int main(int argc, const char **argv){ int no_init; if(argc > 1){ int rval = f(*(argv+1), _init); printf("No init but always 12345 or 54321 eheh: %d\n", (rval) ? rval : no_init); } return 0; } A parte che se si scrive codice così, il bug non c'è ancora ma spunterà presto, appena qualcuno proverà a metterci mano :-) Comunque non vedo il punto, in questo codice il valore della variabile no_init viene usato solo se è stato inizializzato dandogli un valore, altrimenti rimane non inizializzata e non usata. Infatti valgrind non fa una piega: $ valgrind -q ./prova 2 No init but always 12345 or 54321 eheh: 54321 $ valgrind -q ./prova 1 No init but always 12345 or 54321 eheh: 12345 Tra l'inizializzazione e l'uso ci potrebbe essere di mezzo un assegnamento ;) Certo, se prima di usarne il valore, lo assegni, allora la variabile non è più non inizializzata. Se volevi solo dire questo, ti sarebbe bastato il seguente codice come esempio, no? int main() { int a; a = 0; return a; } Tieni conto che nei vecchi standard C, non era possibile dare un valore alle variabili contestualmente alla dichiarazione, non potevi scrivere "int uno = 1;". Quindi ci sono tantissime dichiarazioni di variabili tipo "int a;" che non assegnano alcun valore. È importante che il valore non venga usato, prima di essere in qualche modo definito, ma di certo nessuno dice che è necessario faro all'atto della dichiarazione della variabile. Mi permetto di dire che il mio esempio con una semplice variabile intera nella quale il valore di alcuni bit è ben definito e il valore di altri no... mi sembrava un po' più raffinato :-) Anche perché l'oggeto di questa discussione mette al centro valgrind, che in quell'esempio si comporta in maniera tutt'altro che banale. Ĝis, m
Re: errori java
Il 29/11/2020 10:13, Filippo Dal Bosco - ha scritto: > da alcuni giorni lanciando pdfsam con bullseye che aggiorno tutte le > mattine > > ottengo questo: > > > Exception in thread "main" java.lang.NoClassDefFoundError: > org/sejda/injector/Injector > at org.pdfsam.basic.App.main(App.java:34) > Caused by: java.lang.ClassNotFoundException: org.sejda.injector.Injector > at > java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) > at > java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) > at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) > ... 1 more > > > problema java o problema pdfsam ? > può essere un problema di java può essere un problema di pdfsam :) Riguardo PDFSAM, hai provato quanto suggerito in blog [1] ? In sintesi il suggerimento: 1. Verificare di avere java aggiornato 2. Utilizza lo script di startup *pdfsam.sh* fornito che trovi nella sottocartella *bin* e verifica i messaggi di debug che ti segnala [1] https://blog.pdfsam.org/pdfsam-basic/debug-pdfsam-basic-doesnt-start/1842/
errori java
da alcuni giorni lanciando pdfsam con bullseye che aggiorno tutte le mattine ottengo questo: Exception in thread "main" java.lang.NoClassDefFoundError: org/sejda/injector/Injector at org.pdfsam.basic.App.main(App.java:34) Caused by: java.lang.ClassNotFoundException: org.sejda.injector.Injector at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) ... 1 more problema java o problema pdfsam ? -- Filippo
Re: Migliorare Debian e il software libero: trovare bug con valgrind e scrivere le patch
On 29/11/20 01:11, Sabrewolf wrote: Il 28/11/20 17:47, Marco Bodrato ha scritto: Le variabili non inizializzate, non sono un bug se il loro valore non viene usato :-) Tra l'inizializzazione e l'uso ci potrebbe essere di mezzo un assegnamento ;) io intendo inizializzazione anche l'assegnamento prima dell'uso del suo contenuto. L'importante è che prima di essere usato, il valore venga impostato con qualcosa. Se invece hai una variabile che non è inizializzata, ma non è usata (in nessun caso d'uso del programma), allora quella variabile è inutile e andrebbe tolta. Ciao Davide -- Elenco di software libero: http://tinyurl.com/eddgj GNU/Linux User: 302090: http://counter.li.org Non autorizzo la memorizzazione del mio indirizzo su outlook