2016-05-25 13 views
0

Wenn ich SymEnumSourceFiles verwende, um alle Dateien aufzuzählen, die von einem Debug-Programm geladen werden, ist das kein Problem. Aber wenn es durch das Release-Programm ersetzt wird, kann es nicht funktionieren, und GetLastError gibt 0 zurück. Wenn ich alle Dateien auflisten möchte, die von einem Release-Programm geladen wurden. was soll ich machen?Kann ich das Release-Programm SymEnumSourceFiles verwenden?

Antwort

0

Ich habe dieses Problem gelöst. Im Realease-Modus müssen wir den Pfad zur PDB angeben. Fügen Sie diese Codezeile hinzu, bevor SymEnumSourceFiles OK ist.

SymSetSearchPathW(hProcess_, pdbPath); 
0

Wenn ich Ihre Frage richtig verstanden habe, sagen Sie, dass SymEnumSourceFiles für Debug-Build-Programme erfolgreich ist, aber für Release-Builds fehlschlägt. Wenn das der Fall ist, benötigt Ihr Programm nur .PDB Datei zusammen mit.

Sie müssen /DEBUG in Linker Einstellung des Projekts angeben. Nein Es macht nicht Release erstellen einen Debug-Build - alle Optimierungen bleiben, nur dass .PDB-Datei generiert wird.

+0

Vielen Dank! Aber das Release-Build-Programm hat auch .PDB-Datei, und ich gebe nicht/DEBUG in Linker Einstellung des Projekts. –