• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Allegro5 Visual Studio 2012/2015 Cannot find or open the PDB file

VPS Starter Arubacloud
0 głosów
645 wizyt
pytanie zadane 11 lutego 2016 w C i C++ przez Noroelle Saeth Nowicjusz (160 p.)

Witam,

Więc tak jak w temacie. Spokojnie pisałam sobie gierkę w Allegro wszystko się zawsze ładnie kompilowało aż tu nagle pewnego pięknego dnia takie coś się ukazało mym oczom. Nie zauważyłam tego od razu toteż myślałam ze to błąd w kodzie (otwierało się tylko puste czarne okno i nie było w nim żadnych elementów gry). Postanowiłam więc przepisać dokładnie kod z fragmentu poradnika: https://www.youtube.com/watch?v=Iy1AZGFzt-g&index=10&list=PL39779BF3B079F6CD (efekt końcowy miał być taki jak na filmiku). Odpalam debugowanie i znowu tylko czarne okno. I wtedy to ujrzałam "Cannot find or open the PDB file" Próbowałam Clean na projekcie a potem Rebuild ale nie pomogło. Próbowałam także Debug -> Options and Settings -> Debugging -> Symbols -> Microsoft Symbols Servers  ale wtedy działanie gry nie zmieniło się (wciąż czarne okno) i pojawiły się inne komunikaty a mianowicie Symbols Loaded/Unloaded. Testowałam z VS 2012 i 2015
Z góry dziękuję za pomoc :>

3 odpowiedzi

0 głosów
odpowiedź 11 lutego 2016 przez Sareley Gaduła (4,740 p.)
Wydaje mi się że to będzie jakiś problem z zewnętrznymi plikami .dll. Najlepiej skopiuj nazwę błędu i poszukaj po internecie na pewno ktoś miał już z tym problem, sam tak zawsze robie :). Możesz jeszcze spróbować uruchomić VS w trybie administratora oraz upewnić się że masz dobrze podlinkowane zewnętrzne biblioteki w VS i czy używasz odpowiedniej wersji .dll dla twojego windowsa (32-bit / 64-bit)
komentarz 11 lutego 2016 przez Noroelle Saeth Nowicjusz (160 p.)
Szukam już od 3 dni ;) Robiłam reinstal VS. Pobierałam Allegro od nowa. Próbowałam nawet wrzucić te pliki .dll do system32 (wiem wiem nie powinno się ale już nie miałam pomysłów ;)) Nic nie pomogło :<
komentarz 11 lutego 2016 przez Sareley Gaduła (4,740 p.)
Spróbuj coś takiego:

I had a similar problem in VS2013 ... something to do with a PDB file and IISEXPRESS. I tried several things and eventually resolved it by doing this:

Tools > Options > Debugging > Symbols and then pressing the "Empty Symbol Cache" button

Upon rerunning my app, it took awhile for Visual Studio to reload all of the symbols but it did eventually do so and the problem was fixed!

Temat: http://stackoverflow.com/questions/8412851/visual-studio-2010-cannot-find-or-open-the-pdb-file
komentarz 11 lutego 2016 przez Noroelle Saeth Nowicjusz (160 p.)
Niestety nie pomogło :<
0 głosów
odpowiedź 11 lutego 2016 przez draghan VIP (106,230 p.)
Nie używałem nigdy VS, ale może uda się pomóc.

Pokaż screena tego czarnego okna. Być może nie ma to związku z plikami PDB.
komentarz 11 lutego 2016 przez Noroelle Saeth Nowicjusz (160 p.)

No cóż czarne okno jak czarne okno ;) (jedyne co działa to zamykanie klawiszem escape (zamykania krzyżykiem nie zaimplementowałam))

komentarz 11 lutego 2016 przez draghan VIP (106,230 p.)
To w takim razie poproszę kod. :P

Nie może być tak, że część kodu działa, a część nie. Skoro działa zaimplementowane przez Ciebie wychodzenie klawiszem escape, to powinna działać i reszta.

A tak poza konkursem - jak tam obsługa mapy? :)
komentarz 12 lutego 2016 przez Noroelle Saeth Nowicjusz (160 p.)

O witam ponownie :> Obsługa mapy całkiem nieźle ale miałam trochę problemy z kolizjami (postać potrafiła się zapaść nagle :D) ale jakoś poszło w tym projekcie jej nie ma bo postanowiłam zacząć od nowa tym razem obiektowo bo mi się zaczął robić syf w kodzie :D no więc folder z 23 plikami ;) (a to dopiero początek >.<) https://drive.google.com/folderview?id=0B0MueQDK3lNoQ2RFNldBcG1rQzg&usp=sharing

komentarz 12 lutego 2016 przez Noroelle Saeth Nowicjusz (160 p.)
edycja 12 lutego 2016 przez Noroelle Saeth
Teraz po wyjściu z gry klawiszem escape wyświetla sie okno z takim błędem: "Unhandled exception at 0x64ECBAF5 (allegro-5.0.10-monolith-md-debug.dll) in FelixAdventures.exe: 0xC0000005: Access violation reading location 0xFEEF001A." Teraz to już całkiem nwm o co chodzi D:
EDIT
Debugger wskazuje na funkcje Unload() w klasach Animation - al_destroy_bitmap(image), FadeAnimation - fadeSpeed = NULL oraz ScreenManager - transition.Unload(), a także na al_destroy_display(display) w main.cpp Z tego co czytałam to zdarza się tak kiedy program chce usunąć pointer który już został usunięty(?) Ale nie znalazłam nic w kodzie :< Próbowałam usuwać te pointery, modyfikować Unload() ale nic nie pomaga :/
komentarz 12 lutego 2016 przez draghan VIP (106,230 p.)
Wszystko jest w porządku. Masz czarny ekran, bo nic po nim nie rysujesz. ;)

Nie zaimplementowałaś metody GameScreen::Draw().

I jeszcze jedna uwaga: dla ścieżek przy dołączaniu nagłówków, używaj forward slasha (/), nie backslasha (\).
komentarz 12 lutego 2016 przez draghan VIP (106,230 p.)
A z tym błędem, to musiałaś coś złego dopisać. ;)
komentarz 12 lutego 2016 przez Noroelle Saeth Nowicjusz (160 p.)
Oki dzięki zaraz ogarnę to GameScreen :>
komentarz 12 lutego 2016 przez Noroelle Saeth Nowicjusz (160 p.)
Ale chwila jak nie rysuje nic po ekranie? Przecież rysuje klasa ScreenManager - ScreenManager::GetInstance().Draw(display);
komentarz 12 lutego 2016 przez draghan VIP (106,230 p.)
No okej. I co się dzieje w tej metodzie? ;)
komentarz 12 lutego 2016 przez Noroelle Saeth Nowicjusz (160 p.)
No z mojej znajomości tego co napisałam :D wynika iz currenScreen przybiera wartość Draw no a jeżeli StartTrasition jest prawdą to transition przybiera wartości Draw (chyba że nie wiem co napisałam co w sumie całkiem mozliwe bo jeżeli chodzi o obiektowość to jestem... mocno początkujaca :D) więc dalej nie za bardzo rozumiem co to ma do GameScreen :/
komentarz 12 lutego 2016 przez draghan VIP (106,230 p.)

Oj oj... Nieładnie. ;)

void ScreenManager::Draw(ALLEGRO_DISPLAY *display)
{
	currentScreen -> Draw(*display);
	if(startTransition)
		transition.Draw(display);
}

Wywołujesz w tej metodzie metodę Draw() obiektu currentScreen, który jest klasy GameScreen.

Jeśli umieścisz cokolwiek rysującego w metodzie GameScreen::Draw(), wtedy zobaczysz efekt.

Na przykład:

void GameScreen::Draw(ALLEGRO_DISPLAY &display)
{
    al_draw_line(1,1, 100, 100, al_map_rgb(0,0,255), 4);
}

 

komentarz 12 lutego 2016 przez Noroelle Saeth Nowicjusz (160 p.)
Brzmi sensownie :> Teraz dotarło >.< Ciężko tak ze strukturalnego na obiektowe przeskoczyć ale trzeba kideyś w końcu :D Zaraz sprawdęczy to działa
komentarz 12 lutego 2016 przez draghan VIP (106,230 p.)
A jak z tym Unload()? U mnie wszystko w porządku... Sprawdzałem nawet Valgrindem i nie było nic podejrzanego.
komentarz 12 lutego 2016 przez Noroelle Saeth Nowicjusz (160 p.)
edycja 12 lutego 2016 przez Noroelle Saeth
Nie wiem ale jak jak poprawiłam GameScreen::Draw to się od Unload() odczepił... ale teraz ma problem z Draw() w GameScreen i ScreenManager i al_flip_display(); w main.cpp >.< nazywa to błędęm R6010 szperam teraz w interecie i szukam rozwiązania. Ale ogólnie dzięki wielkie za pomoc. A skoro mam pod ręką takiego geniusza (swoją drogą czy masz jakieś życie poza tym forum? ;)) to mam dwa pytania: 1. cokolwiek rysującego... czyli może tam być np bitmapa? i 2. FadeAnimation używa czarnego obrazka .png czy zamiast tego mogę po prostu użyć czarnego kwadratu?

 

Z tego co czytałam ten błąd pojawia się gdy próbuje się usunąć coś nieistniejącego lub gdy zapomni się zainicjować czegoś ważnego... W moim przypadku chodzi prawie na pewno o usuwanie ;)
komentarz 12 lutego 2016 przez draghan VIP (106,230 p.)

teraz ma problem z Draw() w GameScreen i ScreenManager i al_flip_display(); w main.cpp

Jaki dokładnie problem?

1. cokolwiek rysującego... czyli może tam być np bitmapa?

Może tam być cokolwiek, co chcesz narysować. ;) Czyli pewnie bitmapa również, o ile wcześniej ją przygotujesz.

2. FadeAnimation używa czarnego obrazka .png czy zamiast tego mogę po prostu użyć czarnego kwadratu?

Jeśli używa go tylko do zmazania fragmentu ekranu, to jak najbardziej - będzie to nawet wydajniejsze. :)

A skoro mam pod ręką takiego geniusza (swoją drogą czy masz jakieś życie poza tym forum? ;))

Bez przesady. ;) Po prostu to lubię. :) No i jak myślisz, mam jakieś życie poza tym forum? ;D

 

komentarz 13 lutego 2016 przez Noroelle Saeth Nowicjusz (160 p.)
W sumie coś jeść musisz, spać, no i >na szczęście< nie odpowiadasz na posty po kilku sekundach zawsze. Śmiem zatem podejrzewać że jakieś tam życie masz ;)
0 głosów
odpowiedź 12 lutego 2016 przez maly Nałogowiec (37,190 p.)
Pliki .pdb są informacją wyłącznie dla debugera i nie mają wpływu na działanie programu więc jeśli program nie działa jak powinien, winny jest tylko kod napisany przez Ciebie inaczej ujmując "Twoja wina, Twoja wina, Twoja bardzo wielka wina".

Podobne pytania

0 głosów
1 odpowiedź 322 wizyt
pytanie zadane 27 grudnia 2019 w C i C++ przez Matibedi335 Początkujący (350 p.)
0 głosów
2 odpowiedzi 289 wizyt

92,452 zapytań

141,262 odpowiedzi

319,080 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...