cstring im debugger
-
hallo
ich weiss nicht recht ob dieser beitrag in dieses forum passt aber ich versuchs trotzdem.
wenn ich meine c++-projekte (in MS VC++ 6.0) debugge, so werden mir meine cstrings im überwachungsfenster nicht angezeigt. das programm arbeitet allerdings mit den cstrings.ich kann mir auch den inhalt mittels getbuffer in ein char * schreiben und dieses anschauen, allerdings ist das irgendwie nicht so komfortabel.
muss ich irgend welche besonderen projekteinstellungen vornehmen, um meinen debugger voll nutzen zu können?
mfg
swen
-
Klingt komisch.
Kannst du die Überwachung auch nicht erzwingen, indem du den Variablennamen direkt eingibst? Oder den mit Drag&Drop runterziehst?

-
nein
das funktioniert nicht. es kommt dann die ausschrift "cxx0017 Fehler: symbol nicht gefunden"
wie gesagt, es ist mir unerklärlich. der debugger zeigt mir meine erstellten structs usw an , aber eben keine cstrings.
-
Aloha,
dann kennt er die Variable an der Stelle net. Bist Du sicher, daß Deine Cstring-Variable an der Stelle existiert, wenn Du am Haltepunkt ankommst ?
Schreibfehler ?
Hast Du ein bißchen Code von der Stelle ?
Grüße
BOA
-
ja ich bin sicher, dass die variable am haltepunkt existiert. ich habe mir zur bestätigung vorher bereits den cstring-inhalt in ein char* eingelesen und das passt alles.
ich schicke trotzdem etwas code:
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[]) { int nRetCode = 0; if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0)) { // ZU ERLEDIGEN: Fehlercode gemäß Ihren Anforderungen ändern cerr << _T("Fatal Error: MFC initialization failed") << endl; nRetCode = 1; } else { FILE *myfile,*newfile; char buffer[255]; char newfilename[255],oldfilename[255]; CString s,s1,s2; double x[3]; int j; bool is; CFileDialog myDialog(true,NULL,NULL,OFN_HIDEREADONLY | OFN_NOCHANGEDIR|OFN_OVERWRITEPROMPT,""); CFileDialog myDialog2(false,"dat",NULL,OFN_HIDEREADONLY | OFN_NOCHANGEDIR,"DAT Files (*.dat)|*.dat||"); switch (myDialog.DoModal()) { case IDOK : { s1=myDialog.GetPathName(); char *info; info=s1.GetBuffer(0);//hier überprüfe ich den inhalt sprintf(oldfilename,"%s",s1);wie gesagt: der cstring-inhalt stimmt, ich kann ihn mir nur nicht im debugger anschauen.
-
Mir ist noch ne Idee gekommen:
Mach doch ein TRACE.
Also einfachTRACE("%s\n", s1);hinschreiben.
Wenn er das tut, kannst du trotzdem gucken, was da drin steht.

-
estartu_de schrieb:
Mir ist noch ne Idee gekommen:
Mach doch ein TRACE.
Also einfachTRACE("%s\n", s1);hinschreiben.
Wenn er das tut, kannst du trotzdem gucken, was da drin steht.

Danke
der Gedanke ist auch nicht schlecht, allerdings behebt er leider das problem nicht. irgendwo steckt bei mir der wurm drin, denn normalerweise sollte man den cstring im debugger sehen können.
-
Bei komischen Problemen hilft manchmal ein
"Erstellen -> Bereinigen"
"Erstellen -> Alles neu erstellen".
-
Sollte es auf einem anderen PC mit der gleichen Entwicklungsumgebung funktionieren - dann solltest du über eine Neuinstallation nachdenken. Das ist der sicherste Weg, seltsame Phänomene los zu werden.

-
Du kannst auch mal im Verzeichnis deíner VC-Installation nach eine Autoexp.dat Datei suchen; in der stehen die ganzen Datentypen, die der Debugger anzeigt. Vielleicht ist ja da was kaputt.