Pacchetti Kde 4.2 in current: impossibile generare backtrace

Postate qui se avete consigli per migliorare i pacchetti disponibili in questo sito o se avete problemi con installazione, funzionamento o altro.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il nome del pacchetto.
2) Specificare se discussione/suggerimento o richiesta d'aiuto.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
proffi
Linux 1.x
Linux 1.x
Messaggi: 135
Iscritto il: ven 13 ago 2004, 0:00
Slackware: 13.37
Località: Lunano

Pacchetti Kde 4.2 in current: impossibile generare backtrace

Messaggio da proffi »

Ciao, come molte persone sul forum sto usando kde 4.2 su Slackware 12.2, è veramente un bel DE ma ancora non esente da difetti. Ho trovato qualche problemino qua e là, inoltre mi sono capitati un paio di crash di plasma e konqueror.
Ogni volta che avviene un crash, kde cerca di generare un backtrace, ma non ci riesce mai perché non trova i simboli di debug. Immagino che questo avvenga perché gli slackbuild usano strip per eliminare i simboli.
Ora, dato che i pacchetti di Kde 4.2 sono in /testing, penso che sarebbe utile per tutti gli utenti, non solo di Slackware ma anche di kde, poter vedere un backtrace completo per segnalare eventualmente un bug. A parte una riduzione delle dimensioni degli eseguibili, passare tutto con strip che vantaggi dà? Penso che, se kde 4.2 è in testing, sarebbe utile poterlo testare a fondo e avere i simboli di debug, quindi evitare di usare strip, o quantomeno evitare che tocchi i simboli di debug.
Cosa ne pensate? Lo si potrebbe far presente a Pat & C?

PS: se qualcuno sul forum ha provato a compilare kde da solo, qual è circa la differenza in dimensione tra file strippati e non? Perché se è troppo grande distribuire eseguibili con simboli di debug inclusi non sarebbe fattibile...

Avatar utente
ildiama
Linux 3.x
Linux 3.x
Messaggi: 536
Iscritto il: mar 27 dic 2005, 16:49
Slackware: mine
Kernel: 2.6.alto..
Desktop: KDE4
Località: Senigallia
Contatta:

Re: Pacchetti Kde 4.2 in current: impossibile generare backtrace

Messaggio da ildiama »

L'argomento è un pò complicato..

Prima di tutto Pat non ha mai rilasciato pacchetti per il debug o pacchetti con binari contenenti i simboli di debug. Nel suo modo di pensare credo lui intenda che se tu vuoi, fai da solo. In fondo ti fornisce anche lo slackbuild..

La differenza tra un binario strippato e uno no si sente eccome.. incollo qui un ls -l delle mie compilazioni..

Codice: Seleziona tutto

root> ls /opt/kde/bin/ -l
-rwxr-xr-x 1 root root   101804 2009-02-06 12:00 akonadi_distlist_resource
-rw-r--r-- 1 root root   847299 2009-02-06 12:00 akonadi_distlist_resource.debug
-rwxr-xr-x 1 root root    89628 2009-02-06 12:00 akonadi_ical_resource          
-rw-r--r-- 1 root root   816740 2009-02-06 12:00 akonadi_ical_resource.debug    
-rwxr-xr-x 1 root root   118196 2009-02-06 12:00 akonadi_imaplib_resource       
-rw-r--r-- 1 root root   856299 2009-02-06 12:00 akonadi_imaplib_resource.debug 
-rwxr-xr-x 1 root root   101672 2009-02-06 12:00 akonadi_kabc_resource          
-rw-r--r-- 1 root root   482313 2009-02-06 12:00 akonadi_kabc_resource.debug    
-rwxr-xr-x 1 root root    93208 2009-02-06 12:00 akonadi_kcal_resource          
i pacchetti .debug sono quelli che contengono i simboli. Ma sono un pò strippati anche quelli. Per farsi una semplice idea, potremmo dire che un pacchetto strippato è un decimo di un pacchetto non strippato.

Come si vede, la soluzione al problema consiste nel separare il file binario dai suoi simboli di debug e collegarli fra loro in qualche modo. Questo comporta che in fase di utilizzo hai i vantaggi di un pacchetto soft (piccolo, veloce, .. ) e in caso di crash i simboli vengono recuperati dal file .debug. Quest'ultima operazione sembra un pò più lenta, ma.. chissenefrega :lol: !! Sperando che il sw crashi poco.

Per ottenere una cosa come la mia, bisogna fare così (sostituendo il codice di Pat):

Codice: Seleziona tutto

# ----- executables
for exe in $( find . -type f -name '*' | xargs file | grep "executable" | grep ELF | cut -f 1 -d : )
do
    objcopy --only-keep-debug $exe $exe.debug
    chmod 644 $exe.debug
    strip --strip-unneeded $exe
    objcopy --add-gnu-debuglink=$exe.debug $exe
done

# ----- shared libs
for shared in $( find . -type f -name '*' | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : )
do
    objcopy --only-keep-debug $shared $shared.debug
    chmod 644 $shared.debug
    strip --strip-unneeded $shared
    objcopy --add-gnu-debuglink=$shared.debug $shared
done

Ovviamente lo script si potrebbe migliorare. Ma così funziona. Inoltre exe e shared libs mi piacciono separati perché prima utilizzavo una diversa opzione di strip fra i due.

Codice: Seleziona tutto

$ man strip
Spero di essere stato utile, ciao.

Avatar utente
proffi
Linux 1.x
Linux 1.x
Messaggi: 135
Iscritto il: ven 13 ago 2004, 0:00
Slackware: 13.37
Località: Lunano

Re: Pacchetti Kde 4.2 in current: impossibile generare backtrace

Messaggio da proffi »

Ciao, grazie sei stato chiarissimo. Poi non sapevo della possibilità di separe gli eseguibili dai simboli di debug.
Se avrò tempo e voglia di compilare kde (ehm... sarà dura :D ) ci proverò, comunque è interessante questa cosa.
Mi era venuto in mente solo perché volevo capire qual era la causa dei crash...almeno uno al giorno me ne capitano. Effettivamente però è improponibile distribuire pacchetti non strippati se la differenza in dimensioni è così grande...
Ciao

Rispondi