2015-04-08 28 views
5

Początkowo chciałem zainstalować zaktualizowane pakiety MinGW przy użyciu GUI MinGW-get, ale zawiesza się, gdy wybieram "Zaznacz wszystkie uaktualnienia" z menu rozwijanego "Instalacja" (niezależnie od tego, czy aktualizuję katalog, czy nie).W jaki sposób można zdiagnozować, debugowania GUI MinGW-get (guimain.exe) awarii?

Teraz chcę dowiedzieć się, dlaczego rozbił się guimain.exe.

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

Jak mogę zdiagnozować i debugowania ten uporczywy problem? Mam słabą znajomość GDB, ale nigdy go nie używałem. Nie jestem zdecydowany używać debugera Visual Studio.

zakładam muszę korzystać z niektórych dodatkowych plików binarnych lub biblioteki debugowania w najnowszym instalatora gałęzi MinGW tutaj: https://sourceforge.net/projects/mingw/files/Installer/mingw-get/mingw-get-0.6.2-beta-20131004-1/

Może ktoś proszę kierować mi? Sugerujemy wszelką pomoc lub sugerowaną lekturę.

+2

Na pewno chcesz debugować to, zamiast po prostu publikować raport o błędach lub aktualizować MinGW? – nneonneo

+0

Idealnie, sam chciałbym naprawić błąd, a nie tylko go zgłosić. Ale masz rację, że chciałbym również zaktualizować moje biblioteki MinGW (co było moim pierwotnym zamiarem w końcu). –

+1

Jako programista i opiekun mingw-get, naprawdę doceniam twoją chęć uczestniczenia w debugowaniu tego problemu, którego BTW, nie jestem w stanie się powielić. Zastanawiam się, czy jest to najwłaściwsze forum do dyskusji na ten temat, a nie na specjalnym ML lub narzędziu do śledzenia błędów MinGW.org? Niestety, opublikowane wersje mingw-get zostały pozbawione symboli debugowania, a miną trzy lub cztery miesiące, zanim znajdę czas, aby skutecznie poprowadzić Cię przez proces wdrażania wersji z debugowaniem (która z pewnością nie będzie wspierać w każdym przypadku debuger VS). –

Odpowiedz

2

Mam taki sam problem. GDB sposób do debugowania to:

gdb mingw-get.exe

r upgrade (uruchamiany z aktualizacją argument)

GDB zatrzyma się automatycznie na sygnał SIGSEGV (usterka segmentacji), to co się dzieje za mną.

bt (dostać ślad) Dla mnie to spowodowało ogromne backtrace, wypełnione połączeń do:

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

wygląda na to, że problem rekurencji szybko wypełniona stos wywołań. Pamiętaj, że nazwa funkcji jest zniekształcona i nie znamy numeru linii. To najlepsze, co możesz zrobić bez debugowania symboli. Jeśli masz symbole debugowania, wyjście GDB staje się bardziej użyteczne. W przypadku większości pakietów w stylu Linux można uzyskać symbole debugowania w pakiecie -dbg o nazwie podobnej do usuniętego pakietu binarnego. Jednak nie widzę pakietu debugowania dla mingw32-mingw-get w aukcji.

+0

Dziękuję @kcghost. Był to rodzaj wstępnej odpowiedzi, której szukałem. Spróbuję tego. –

+0

@MavaddatJavid stanął w obliczu tego samego problemu. Rozwiązałeś to? – odiszapc

+0

Nie rozwiązałem go. Nie widziałem bardzo wygodnego sposobu na uzyskanie symboli debugowania, ani nie spojrzałem na kod źródłowy. Miałem nadzieję, że programista @ keith-marshall to zobaczy :). – kcghost

10

Dla tych, którzy przeżywają katastrofę na próby aktualizacji pakietach .. spróbuj uruchomić go w trybie rekurencyjnym ..

mingw-get upgrade --recursive 

który ukazał się wymusić uaktualnienie dla mnie ..

+2

Dzięki za cynk. Rozwiązałem moją awaryjną aktualizację na Win7_x64. – user2448122