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

xardias

Community-Fossil

  • »xardias« ist der Autor dieses Themas

Beiträge: 2 731

Wohnort: Santa Clara, CA

Beruf: Software Engineer

  • Private Nachricht senden

1

17.09.2009, 13:34

C++ Exceptions -> Debug Error

Hallo allerseits,

ich habe einen schönen Debug Error

Zitat

"This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information."
erzeugt.

Letzte Codestelle in meinem Code ist der Wurf einer Exception:

Quellcode

1
2
3
4
        static void Fail(cstring assertion, cstring file, int line)
        {
            throw AssertionFailedException(assertion, file, line);
        }

wobei AssertionFailedException über TestFailedException von std::exception ableitet:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
    class TestFailedException : public std::exception
    {
    protected:
        string message;

    public:
        virtual ~TestFailedException() throw() {};

        virtual const char* what() const throw ()
        {
            return message.c_str();
        }
    };

    class AssertionFailedException : public TestFailedException
    {
    public:
        AssertionFailedException(cstring assertion, cstring filename, int line);
        AssertionFailedException(cstring assertion);
        AssertionFailedException();
    };

Soweit also nicht viel was schief laufen könnte. Im Normalfall sollte die Exception einfach weiter oben im Aufrufstack gefangen werden, was auch schon hunderte male funktioniert hat.

Ich poste mal ein Bild vom Stack Trace, eventuell kommt jemanden der Fehler bekannt vor, ich leider Gottes ziemlich überfragt.

(Link)

Hat das jemand schonmal gesehen?

Danke und schöne Grüße,
Dennis

goldfisch007

Alter Hase

Beiträge: 446

Wohnort: Süden von Berlin

  • Private Nachricht senden

2

17.09.2009, 18:53

is das von MS vc++ ???
oder was fürn programm sieht so schick aus? :shock:
Wir bauen auf und reißen nieder, so ham wir Arbeit ima wieder...
--------------------
http://www.piratenpartei.de/tmp/images/Slogans_5_0.png
--------------------
Sei stets geduldig gegenüber Leuten, die nicht mit dir übereinstimmen. Sie haben ein Recht auf ihren Standpunkt - trotz ihrer lächerlichen Meinung. (F. Hollaender, geklaut von Helmut xD)

C--

Alter Hase

Beiträge: 465

Beruf: Schüler

  • Private Nachricht senden

3

17.09.2009, 20:07

Zitat von »"goldfisch007"«

is das von MS vc++ ???
oder was fürn programm sieht so schick aus? :shock:


Meinst du die Farben, die kann man doch alle einstellen ;)
Ich spreche: C/C++, C++/CLI C#, VBA, VB.NET, Delphi, (HTML, Javascript(bisschen))
------------------------------------------------------------
Hier steht eventuell schon in ein paar Monaten der Link zu meiner Homepage!

return 0;
;)

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

4

17.09.2009, 20:47

Ich habe den Fehler glaube ich auch schon gehabt, war dann aber anscheinend weniger ein Coding Problem, sondern iwie ist das Build falsch gelaufen.. Also kannst du den Fehler beliebig oft reproduzieren?

5

17.09.2009, 20:48

Zum Thema: Wird die Exception während regulärem Durchlauf von main() geworfen, also nicht etwa bei der Initialisierung statischer oder globaler Variablen? Wenn du im Debugger bei der throw-Anweisung den kleinstmöglichen Schritt machst, stürzt dann gleich das Programm ab?

Was eventuell auch sein könnte, sind inkompatible Bibliotheken. Wenn du externe Lib- oder DLL-Dateien verwendest, solltest du schauen, dass die entsprechenden Header die gleiche Version wie der Code selber haben. Ich habe zumindest schon erlebt, dass ich eine verwendete Bibliothek aktualisiert, aber nicht korrekt gelinkt habe. Vielleicht hilft Neukompilieren und -linken.

P.S. Den Fehler hatte ich schon unzählige Male, entweder auch wegen durchgekrachter Exceptions oder sonstigen Laufzeitfehlern, allerdings meist im Release-Modus.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

6

17.09.2009, 20:53

Wirft deine Exception beim werfen selber eine Exception oder wird sie vielleicht irgendwo im Zuge der behandlung einer anderen Exception geworfen oder hast du vielleicht einfach keinen handler dafür, oder wird vielleicht irgendwo eine exception specification verletzt (ich seh zwar kein std::unexpected am stack, aber wer weis...)!?

Gotbread

Alter Hase

Beiträge: 421

Beruf: Student (Etechnik) + Hiwi

  • Private Nachricht senden

7

17.09.2009, 21:15

ich meine beim msvc musst du noch etwas einstellen, damit er exceptions
an das programm weiterleitet und nicht an seinen debugger.

guck mal hier, vllt bringts ja was ;)

ot:

wie kann man die farben einstellen? ich kenn nur, dass man eine einzige
benutzerdefinierte farbe einstellen kann, aber verschiedene?
Mfg Goti
www.gotbread.bplaced.net
viele tolle spiele kostenlos, viele hardware-basteleien :)

"Es ist nicht undicht, es läuft über" - Homer Simpson

C--

Alter Hase

Beiträge: 465

Beruf: Schüler

  • Private Nachricht senden

8

17.09.2009, 21:17

@gotbread: bei VC++08 EE: Optionen->Umgebung->Schriftarten und Fraben, da kannst du (fast) alles mögliche einstellen.
Ich spreche: C/C++, C++/CLI C#, VBA, VB.NET, Delphi, (HTML, Javascript(bisschen))
------------------------------------------------------------
Hier steht eventuell schon in ein paar Monaten der Link zu meiner Homepage!

return 0;
;)

goldfisch007

Alter Hase

Beiträge: 446

Wohnort: Süden von Berlin

  • Private Nachricht senden

9

17.09.2009, 21:20

cool
:) mach ich gleich
Wir bauen auf und reißen nieder, so ham wir Arbeit ima wieder...
--------------------
http://www.piratenpartei.de/tmp/images/Slogans_5_0.png
--------------------
Sei stets geduldig gegenüber Leuten, die nicht mit dir übereinstimmen. Sie haben ein Recht auf ihren Standpunkt - trotz ihrer lächerlichen Meinung. (F. Hollaender, geklaut von Helmut xD)

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

10

17.09.2009, 21:23

psst:
http://www.hanselman.com/blog/VisualStudioProgrammerThemesGallery.aspx

Damit du nicht alles selbst machen musst. ;)

(Kleiner Tipp lediglich die Farben und Fonts importieren/exportieren, da ansonsten alle Einstellungen für Fenster, Ausrichtung usw. des Typen übernommen werden, welche wahrscheinlich nicht den deinnigen entspricht. ;))

Werbeanzeige