VS 2010 else zweig debuggen



  • Aber wie man schön am gelben pfeil sieht bin ich da drin...



  • Jetyt seh ich es... hmm...
    Ich kann mir nur vorstellen, dass Du in Deinen Debug-Projekct0Einstellungen trotzdem Optimierungen aktiviert hast und somit die Variablen wegoptimiert wurden!



  • Und es kann auch nicht sein, dass bei deiner "else-Variante" die Variable level == 0 ist?
    Dann würde ja bei offset wirklich 0 raus kommen.



  • Hey, danke für die antworten 🙂

    Jochen Kalmbach schrieb:

    Jetyt seh ich es... hmm...
    Ich kann mir nur vorstellen, dass Du in Deinen Debug-Projekct0Einstellungen trotzdem Optimierungen aktiviert hast und somit die Variablen wegoptimiert wurden!

    Optimierung sind im Debug modus komplett aus. (/Od)

    oneill5000 schrieb:

    Und es kann auch nicht sein, dass bei deiner "else-Variante" die Variable level == 0 ist?
    Dann würde ja bei offset wirklich 0 raus kommen.

    Selbst wenn das so wäre: Unten im watch fenster sieht man, dass er die anderen variablen im aktuellen kontext nicht kennt. Und die variable offset die er findet hat den typ int (auch inten im fenster ersichtlich). Mein offset aber float (wie man in der code zeile darüber sieht).
    Ich kanns mir halt einfach nicht erklären, vorallem da einfaches umkopieren funktioniert.

    Oh gerade mal was ausprobiert und ich kanns sogar in einem ganz simplen test reproduzieren, vielleicht kann das jemand mit vs2010 bei sich mal testen:

    int main(int argv, char *argc[])
    {
    	int a = 5;
    
    	if(true)
    	{
    		float a = 3;
    		a += 3;
    	}
    	else
    	{
    		float a = 4;
    		a += 3;
    	}
    
    	return 0;
    }
    

    Wenn ich durch den if block steppe wird mir a als richtiger wert angezeigt. Änder ich die bedingung in if(false) und gucke mir den else block an, zeigt er mit die äußere

    int a = 5;
    

    variable an, nicht die innere float.



  • Das sieht wirklich nach einen Bug aus...
    Kannst Du das mal auf Connect melden und mit dann den Link dazu hier posten?

    Hier mal mein Code:

    #include <stdio.h>
    #include <tchar.h>
    
    int _tmain(int argv, char *argc[]) 
    { 
        int a = 5; 
    
        if(false) 
        { 
            float a = 3; 
            a += 3; 
            printf("%f\n", a);
        } 
        else 
        { 
            float a = 4; 
            a += 3; 
            printf("%f\n", a);
        } 
    
        return 0; 
    }
    

    ADD: Hab es mal intern an die VC++ Produkt-Gruppe weitergeleitet... Du solltest es aber mal auf Connect eintragen!



  • Hey,

    sorry ich steh nicht so auf Anmeldungen. Wenn du lust hast kannst du das aber gerne da eintragen.

    Gruß



  • Hier der Eintrag auf Connect:
    https://connect.microsoft.com/VisualStudio/feedback/details/612911/

    Jemend von der Produkt-Gruppe konnte den Fehler nachvollziehen und hat ihn in das interne Bug-Log System eingetragen...
    Wann der Fehler behoben wird, kann ich Dir aber nicht sagen... ich habe zweifel, dass er es in den SP1 schafft...

    Danke für Deine Meldung des Fehlers!



  • Super, danke 🙂

    Auch kein hotfix oder so? Weil das ist ja schon ziemlich... doof 🙂

    Gruß



  • oneill5000 schrieb:

    Was programmierst du denn da schönes? 😕

    Oh, sorry fast vergessen zu antworten. Einen Volumenrenderer in OpenCL 🙂



  • solala schrieb:

    Auch kein hotfix oder so? Weil das ist ja schon ziemlich... doof 🙂

    Wenn es dich arg stört, dann musst Du Dich direkt an den MS Produkt Support wenden. Die können dann mit dem Pruduktteam (und diversen anderen) entscheiden ob es einen Hotfix gibt...


Anmelden zum Antworten