2015-04-08 37 views
5

Inizialmente, volevo installare i pacchetti MinGW aggiornati utilizzando la GUI MinGW-get, ma si blocca quando scelgo "Segna tutti gli aggiornamenti" dal menu a discesa "Installazione" (se aggiorno il catalogo o meno).Come posso diagnosticare, eseguire il debug di MinGW-get GUI (guimain.exe) in modo anomalo?

Ora, voglio capire perché guimain.exe si blocca.

A screen capture of the MinGW-get GUI crashing on my computer

Come posso diagnosticare e debug di questo problema persistente? Ho vagamente familiarità con GDB, ma non l'ho mai usato. Non mi sono impegnato a utilizzare il debugger di Visual Studio.

presumo ho bisogno di usare alcuni binari ausiliari o le librerie di debug nel più recente ramo installazione MinGW qui: https://sourceforge.net/projects/mingw/files/Installer/mingw-get/mingw-get-0.6.2-beta-20131004-1/

Qualcuno può per favore mi guida? Qualsiasi assistenza o suggerimento di lettura è apprezzato.

+2

Sei sicuro vuoi eseguire il debug di questo, piuttosto che pubblicare un bug report o aggiornare il tuo MinGW? – nneonneo

+0

Idealmente, mi piacerebbe correggere l'errore da solo piuttosto che semplicemente segnalarlo. Ma hai ragione a voler aggiornare anche le mie librerie MinGW (che era la mia intenzione originale dopo tutto). –

+1

Come sviluppatore e manutentore di mingw-get, apprezzo molto la tua volontà di partecipare al debugging di questo problema, che a proposito, non sono in grado di riprodurmi. Mi chiedo se questo sia il forum più appropriato per discutere il problema, piuttosto che su un ML o un bug tracker specifico di MinGW.org? Sfortunatamente, le versioni pubblicate di mingw-get sono state rimosse dai simboli di debug, e ci vorranno tre o quattro mesi prima che possa trovare il tempo per guidarti efficacemente nel processo di distribuzione di una build abilitata per il debug, (che sicuramente non supporterà il debugger VS in ogni caso). –

risposta

2

Mi capita di avere lo stesso problema. Il modo per eseguire il debug GDB questo:

gdb mingw-get.exe

r upgrade (eseguito con l'aggiornamento argomento)

GDB si arresta automaticamente un segnale di SIGSEGV (Segmentation fault), è quello che succede a me.

bt (ottenere un backtrace) Per me questo ha provocato un enorme backtrace, riempiti con le chiamate a:

#5013 0x6f9cdda4 in mingw-get-0!_ZN14pkgXmlDocument19ResolveDependenciesEP10pkgXmlNodeP13pkgActionItem() from c:\MinGW\libexec\mingw-get\mingw-get-0.dll

Sembra un problema di ricorsione che rapidamente riempito lo stack di chiamate. Si noti che il nome della funzione viene manomesso e non conosciamo il numero di riga. Questo è il meglio che puoi fare senza eseguire il debug dei simboli. Se si dispone dei simboli di debug, l'output GDB diventa più utile. Per la maggior parte dei pacchetti in stile Linux, è possibile ottenere i simboli di debug in un pacchetto -dbg chiamato similmente al pacchetto binario stripped. Tuttavia non vedo un pacchetto di debug per mingw32-mingw-get nell'elenco.

+0

Grazie @kcghost. Questo era il tipo di risposta introduttiva che stavo cercando. Ci proverò. –

+0

@MavaddatJavid ha affrontato lo stesso problema. L'hai risolto? – odiszapc

+0

Non l'ho risolto. Non ho visto un modo molto conveniente per ottenere i simboli di debug, né ho guardato il codice sorgente. Speravo che lo sviluppatore keith-marshall lo vedesse :). – kcghost

10

Per coloro che stanno vivendo l'incidente sul tentativo di aggiornare i pacchetti .. provare a eseguirlo in modalità ricorsiva ..

mingw-get upgrade --recursive 

che è apparso per imporre un aggiornamento per me ..

+2

Grazie per il suggerimento. Risolto il mio crash di aggiornamento su Win7_x64. – user2448122