Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

NachoMan

Community-Fossil

  • »NachoMan« ist der Autor dieses Themas

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

1

23.02.2012, 17:48

Programmverhalten ausserhalb des Debugers

Hi, ich entwickel gerade ein Spiel das im Debuger von Visual Studio(2008 und 2010) wunderbar funktioniert. Starte ich die Releaseversion mit strg+F5 oder über den Explorer zeigt es ein anderes Verhalten. Ich kann es schlecht debugen weil es ja im Debuger funktioniert.
Starte ich die Debugversion über den Explorer funktioniert es auch. Nur die Releaseversion ohne Debuger macht probleme.

Weiß jemand was es im Allgemeinen für Unterschiede für das Programm gibt?

Ich nutze die SFML 2.0 und Boost 1.46.1. (Beides statisch gelinkt)

Anscheinend werden einige Objekte nicht richtig kopiert(Factory method pattern) oder es gibt ein Problem mit std::tr1::shared_ptr. Das ist aber unlogisch weil es im Debuger funktioniert. :(

Wenn ihr mehr informationen braucht könnt ich versuchen es näher zu beschreiben.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

Sylence

Community-Fossil

Beiträge: 1 663

Beruf: Softwareentwickler

  • Private Nachricht senden

2

23.02.2012, 18:15

Naja zwischen Debug und Release gibts halt die üblichen Unterschiede. Variablen werden nicht initialisert, Arraygrenzen werden nicht überprüft, etc.

Entweder du suchst gezielt nach sowas, oder du grenzt den Fehler einfach durch irgendwelche Logausgaben ein.

NachoMan

Community-Fossil

  • »NachoMan« ist der Autor dieses Themas

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

3

23.02.2012, 18:58

Danke, das mit den Variablen könnte es sein. Daran hab ich garnicht gedacht.

Ich Kompilier es grad mit Codeblocks. Da gibts andere Warnungen. Vielleicht helfen die mir weiter :D
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

4

23.02.2012, 19:18

Du kannst auch ein Zwischending zwischen Debug und Release erstellen, so dass z.B. schon Optimierungen vorgenommen werden, du aber trotzdem noch debuggen kannst. Vielleicht hilft dir das.

valentin

Treue Seele

Beiträge: 212

Wohnort: Schweiz

Beruf: Schüler

  • Private Nachricht senden

5

23.02.2012, 20:23

Ich habe auch vor kurzem festgestellt, dass die Sfml 2.0 im ReleaseMode ohne Debugging anscheinend nicht so richtig funktioniert, wenn man Doppelklicks bzw. einige Male nacheinander klickt.

Wie sah denn das Problem bei dir genau aus?
(Ich dachte schon, dass ich der einzige bin, bei dem das so ist. :D)

Valentin

//edit: Ich habe das Projekt dynamisch gelinkt.
visit me on deviantArt!
http://v-alentin.deviantart.com/

There is no programming language, no matter how structured, that will prevent programmers from making bad programs. //Larry Flon

NachoMan

Community-Fossil

  • »NachoMan« ist der Autor dieses Themas

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

6

23.02.2012, 22:09

Habs :D
Hab vergessen eine "isAlive" Variable im Kopierkonstruktor zu kopieren. Im Debugmodus wurde sie auf true Initialisiert und im release nicht.

Dankeschön an alle.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

valentin

Treue Seele

Beiträge: 212

Wohnort: Schweiz

Beruf: Schüler

  • Private Nachricht senden

7

25.02.2012, 15:32

Hm, dann bin ich wohl doch der einzige, bei dem das nicht so funktioniert, wie ich es will. Bei folgendem Quellcode bekomme ich die Meldung "[Projekt].exe reagiert nicht.", wenn ich mit der Maus im Fenster umherfahre und wild darauflos klicke. (Nur im Debug/Release-Mode ohne Debugging)

Nicht initialisierte Variablen kann ich hier keine finden.

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <SFML/Graphics.hpp>

int main()
{
    sf::RenderWindow App(sf::VideoMode::GetFullscreenModes()[0], "ODD", sf::Style::Fullscreen);

    while(App.IsOpen())
    {
        if(sf::Keyboard::IsKeyPressed(sf::Keyboard::Escape))
            App.Close();

        App.Clear(sf::Color(0, 0, 0));
        App.Display();
    }

    App.Close();

    return EXIT_SUCCESS;
}


//edit: Das Verhalten tritt auchim Window-Mode auf. Der Fehler tritt nur auf, wenn ich mit der linken Maustaste klicke.
visit me on deviantArt!
http://v-alentin.deviantart.com/

There is no programming language, no matter how structured, that will prevent programmers from making bad programs. //Larry Flon

8

25.02.2012, 16:35

Vielleicht ist es ein muss, dass man die eine Eventabfrage macht?

Mfg
C++-Coder

9

25.02.2012, 17:19

Wie C++-Coder schon sagte ist eine Message-Loop ein Muss.
Ansonsten wird das Fenster nicht aktualisiert.

valentin

Treue Seele

Beiträge: 212

Wohnort: Schweiz

Beruf: Schüler

  • Private Nachricht senden

10

25.02.2012, 17:28

Joa, daran lag's. Jetzt stellt sich mir nurnoch die Frage, warum es im Release bzw. Debug-Mode mit Debugging funktionierte.
Dass das Fenster sonst nich aktualisiert wird wusste ich nicht, und habe ich auch in der Doku der Sfml nicht gelesen.

Danke für die Hilfe :D
visit me on deviantArt!
http://v-alentin.deviantart.com/

There is no programming language, no matter how structured, that will prevent programmers from making bad programs. //Larry Flon

Werbeanzeige