Benutzerhaltepunkt in C eigener sourcendatei???



  • Hallo,

    ich weiss net ganz ob ich ins richtige forum poste, weil ich nicht in der lage bin, das problem zu identifizieren. Es gebt darum, dass ich eine exception bekomme, die mich ratlos stimmt:

    Unbehandelte Ausnahme bei 0x77f65a58 in testX.exe: Benutzerhaltepunkt.

    Kann mir sagen was das heisst? Die tritt nach der Auskunft von visual studio in free.c auf:

    #endif  /* _WIN64 */
            {
                HeapFree(_crtheap, 0, pBlock);
            }
    }
    

    danke für hilfe!!!



  • Sehe ich das richtig, das du eine Klammer auf machst, aber zwei zu?

    Poste doch einfach den ganzen Quelltext, aber wenns zu viel ist lade es auf nen Server hoch und gib uns den Link.

    tschau...



  • sieht mir ganz nach delete auf einen undefinierten pointer aus.

    Edit äh, nicht delete, free. was auch immer.



  • Naja der Quelltext ist ja net meiner sondern der wo er reinspringt. Hmm habe grad mal geguckt wann das kommt. Das ist genau dann wenn ich den Dialog bestätige. Weiss jetzt nicht welcher Code das genau ist. Ich kann ja mal munter posten wie ich die Dialogbox aufrufe....

    m_ptrEnum = new XEnum (deepth, stencil, this->m_logpath);
    	*log << "Enumeration aufgerufen" << endl;
    
    	INT_PTR result = DialogBox (m_hdll, "IDD_GRAKA", hwnd, DlgProcWrapper);
    	switch (result)
    	{
    		case 0:
    			printf ("\t Ownered window wrong.\n");
    			break;
    		case -1:
    			result = GetLastError ();
    			break;
    		default:
    			break;
    	};
    	*log << "Dialogbox aufgerufen" << endl;
    	*log << endl << endl << endl;
    


  • was sagt ihr denn dazu?



  • Ich würde lieber wissen wie man so programmieren lernt?
    Hab grad mit C++ angefangen aber das sind immer noch alles Hyroglyphen bis auf die switch case Anweisung.



  • @fluxy

    Benutzerhaltepunkt.

    hört sich stark nach einem Interrupt 0x3 an, dass sorgt dafür, dass ein Breakpoint gesetzt wird. Spielst du irgend wo zufällig mit Assembler rum? Oder benutzt du die Librarys im Debug Modus und die benutzen das in irgend welchen asserts? Geh mal mit dem Debugger drüber und schau mal ob der irgend wo ein Brakepoint setzt

    @Facer
    und dabei ist der Code sogar relativ hässlich und eher C



  • Facer schrieb:

    Ich würde lieber wissen wie man so programmieren lernt?
    Hab grad mit C++ angefangen aber das sind immer noch alles Hyroglyphen bis auf die switch case Anweisung.

    Die einzige Neuerung ist, dass er nicht eingebaute Datentypen verwendet, die verschiedene Funktionalität bereitstellen. Nach dem ersten Anfängerbuch könntest du den Quellcode verstehen, wenn du die Klassenimplementationen kennst.
    mfg



  • naja,

    also ich habe keine breakpoints gesetzt und ich sehe auch nicht das da was rotes rundes ist. Da ist so nen grüner Pfeil anner seite, den ich noch nie gesehen habe, ich weiss auch nicht was der zu bedeuten hat. Mit asm oder asserts spiele ich zumindest zur Zeit nicht rum.

    Wisst ihr denn was so nen Grüner pfeil zu bedeuten hat am Rand?!



  • thx werd mich bemühen lese gerade Einstieg in C++ von Arnold Willemer.



  • @fluxy
    kann das vielleicht ein Brakepoint in dem Library Code sein, der keine Debug Symbole hat? (Welche IDE benutzt du überhaupt?)

    @Facer

    Facer schrieb:

    thx werd mich bemühen lese gerade Einstieg in C++ von Arnold Willemer.

    argh, wenn wir das gleiche meinen, dann lösch das Ding!
    http://tutorial.schornboeck.net/inhalt.htm
    http://www.mindview.net/Books/TICPP/ThinkingInCPP2e.html
    und hier über dem Forum findest du auch noch einiges verlinkt



  • @kingruedi
    Nee ist was anderes.

    Titel: Einstieg in C++
    Autor: Arnold Willemer
    Verlg: Galileo Computing

    http://www.lesen.ch/de/katalog/index.asp?nMode=6&nID=2118393



  • 1.) Ich benutze Visual Studio.net 7 Standart Edition Deutsch

    2.) hmmmm wegen der lib keine ahnung der Code kommt ja nicht von mir. Wenn dann ist es eine C-Lib. Kann aber möglich sein, die sollten dann allerdings Released sein.

    Gruß Sebastian



  • ich meinte nicht die beiden Links, sondern die beiden Links solltest du lesen. Aber langsam werden wir hier sehr OT

    http://www.willemer.de/informatik/cpp/index.htm <-- das meinte ich



  • ups ok genau das lese ich gerade.



  • hmmm ich habe noch einen hinweis im ausgabefenster gefunden, mit dem ich nix anfangen kann:

    HEAP[testX.exe]: Invalid Address specified to RtlFreeHeap( 003F0000, 00149FE0 )

    was heisst denn das ?



  • sieht so aus, als würdest du eine ungültige Adresse an HeapFree übergeben, was natürlich den Heap crash[t|en würde]. Dort wird dann wahrscheinlich das assert ausgelöst, was intern einen Brakepoint setzt (int 0x03).

    So hat sich doch alles geklärt.



  • und wenn ich noch gar kein free bzw. delete mache?! Irgendwie klingt das komisch...



  • Ich denke mal irgend wo intern wird das aufgerufen und du hast wahrscheinlich irgend wo das falsche Handle übergeben. Lass dir doch ein Stack Traceback anzeigen, dann weisst du ja wer was mit welchen Parametern aufgerufen hat


Log in to reply