Forum: PC-Programmierung CXX0017: Fehler: Symbol "Speicherpfad" nicht gefunden


von A. R. (redegle)


Lesenswert?

Hallo,

ich habe ein sehr mysteriöses Problem.

Kurzfassung:
Ergänze ich eine Wertzuweisung zu einer Variable des Typs double bekomme 
ich den Fehler CXX0017 bei einem char Array.

Der Quelltext befindet sich in der unteren Funktion:
1
size_t Verbindung::WriteMemoryCallback_chunked(void *buffer, size_t size, size_t nmemb, void *data)
2
{
3
   //Quelltext. Hier nicht aufgeführt, da über 500 Zeilen lang.
4
}

Kurze Funktionsbeschreibung:

Ich bekomme ein Datenpaket gesendet.
Überprüfe, ob im Datenpaket für mich interessante Informationen 
enthalten sind.
Wandel einen String in Binärdaten um.
Öffne ich eine Datei probeweise.
Wenn die Datei vorhanden ist werden die Daten ergänzt und ggf. werden 
interpolierte Daten zwischen den alten und den neuen Werte ergänzt.

Das ganze hat schon funktioniert.
Das Problem tritt bei einem Optimierung auf.

Problemstellung:

Ich erstelle wie unten gezeigt einen Pointer auf ein char-array.
1
char *Speicherpfad = NULL;

Wenn ich an dieser Stelle debugge kann ich nachdem die Intiallisierung 
durchgeführt worden ist normalerweise den Inhalt NULL sehen.

Wenn ich irgendwo innerhalb meiner Funktion jedoch einer Variable des 
Typs double einen Wert zuweise z.B. so:
1
double Test;  //Funktioniert noch
2
Test = 0;     //Führt zu fehler

bekomme ich die Fehlermeldung "CXX0017: Fehler: Symbol "Speicherpfad" 
nicht gefunden".
Zusätzlich treten entliche weitere Fehler auf, die ich noch nicht weiter 
untersucht habe.
Variablen innerhalb einer schleife werden nicht mehr erstellt. 
Stattdessen behalten die Varablen auserhalb (mit dem selben Namen) der 
Schleife ihre Gültigkeit.

Hat jemand eine Idee? Woran das liegen könnte?

von Jonas B. (jibi)


Lesenswert?

Lokale Variable kann er wohl nicht anzeigen, würd ich mal denken - oder 
die Optimierung hat es weg optimiert.

Gruß Jonas

von Dr. Sommer (Gast)


Lesenswert?

Jonas Biensack schrieb:
> Lokale Variable kann er wohl nicht anzeigen, würd ich mal denken.
Die werden lediglich teilweise wegoptimiert, daher können die teilweise 
nicht vom Debugger angezeigt werden, das ist soweit nichts 
Ungewöhnliches.

von A. R. (redegle)


Angehängte Dateien:

Lesenswert?

>Variablen innerhalb einer Schleife werden nicht mehr erstellt.
>Stattdessen behalten die Varablen auserhalb (mit dem selben Namen) der
>Schleife ihre Gültigkeit.

Das war mein Fehler.
Habe hinter einer for-Schleife ein ; gesetzt.
1
for(int i = 0; i<(Differenz-1);i++);
2
{
3
}

Das Problem mit dem Debugger besteht weiterhin.
Aber ersteinmal danke für die Antworten.

Ich programmiere unter Visual Studio 2010.
Optimierungen sind komplett ausgeschaltet "Deaktiviert (/Od)".
Das Programm arbeitet scheinbar normal.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.