2010-11-25 4 views
3

Ich entwickle eine Anwendung in 3D in einer Win 7 64-Bit-Maschine, in Visual C++ 2008. Alles läuft richtig. Wenn ich diese Anwendung auf einer sauberen Maschine in einer VMWare virtuellen Maschine mit XP 32Bits (Hardware 3D aktiviert) oder in einer Maschine eines Freundes von mir überprüfe, schlägt die Anwendung fehl.Probleme aus meiner Maschine: wie Debuggen außerhalb einer Entwicklungsumgebung?

Das Verhalten der Anwendung unterscheidet sich (in die saubere Maschine) der Zusammenstellung abhängig (Debug oder Release) und wenn ich mit MD (d) oder MT (d)

Meine Frage kompilieren: es ist möglich, Debuggen der Anwendung in die saubere Maschine? Existiert ein zentrales Protokoll wie/var/log/message aber in Windows? Wie kann ich überprüfen, welche DLL in meiner Entwicklungsmaschine verwendet wird, um sie mit der in der sauberen Maschine installierten zu vergleichen?

Danke !!

+1

Verwenden Sie auch Visual Studio 2008? Wenn ja, verwenden Sie mindestens Professional Edition? Wenn Sie sind, können Sie [Remote Debugging] (http://tinyurl.com/27hsrlt) – birryree

+0

ich bin so bummed, dass sie ntsd.exe aus frischen Windows-Installationen entfernt. wtf mate. – tenfour

Antwort

1

Wenn es im selben Netzwerk ist, können Sie den Remote-Debugger! Aber vielleicht möchten Sie zuerst überprüfen, ob es sich nicht um eine 64-Bit-App auf einem 32-Bit-Betriebssystem handelt.

+0

Ja! ist die gleiche Maschine. Ich benutze VMware Player, und die "saubere Maschine" wird auf meinem Dev-Rechner gehostet. Ich werde versuchen, Remote-Debugger. – Killrazor

+0

Wenn es auf dem gleichen Computer (Dual-Boot) ist, dann können Sie nicht eine Netzwerkinstallation von Visual Studio durchführen, dann haben Sie alle Ihre Tools auf XP zur Hand. –

+0

Sorry hat den Kommentar nicht gut gelesen! Bitte ignoriere meinen letzten Kommentar. Ich bin nicht vertraut mit VMware –

1

Stellen Sie sicher, dass die Bit-Anzahl korrekt ist und dass auf den Testmaschinen das richtige VC++ -Verteiler installiert ist.

Wenn das nicht hilft, dann versuchen, diese für eine schnelle Fehlersuche:

greifen die Debug-Toolkit von MS (http://www.microsoft.com/whdc/devtools/debugging/default.mspx)

Installieren Sie es auf Ihrer Entwicklungsmaschine.

Kopieren Sie den Installationsordner auf den Computer, auf dem Sie debuggen möchten.

Kopieren/Installieren Sie Ihr Programm auf dem Computer, merken Sie sich die * .PDB-Dateien.

Starten Sie WinDBG aus dem Debugger-Ordner und verwenden Sie den Befehl "Datei-> ausführbare Datei öffnen", um Ihre App zu starten. WinDGB wird schnell brechen und Sie können von dort debuggen.

Wenn Sie Haltepunkte und ähnliches wünschen, lesen Sie die Befehle in den WinDBG-Hilfedateien.

+0

Es ist nicht die verteilbare, AFAIK. Wenn Sie das Programm starten, ohne dass verteilbarer Inhalt installiert ist, wird eine Meldung angezeigt, in der Sie nach einer Neuinstallation als Lösung gefragt werden. Aber in meinem Fall ist der Fehler, den ich jage, "wie das System für die Beendigung angefordert hat ....". Wie eine Behauptung, aber im Freigabemodus. – Killrazor

+0

Dann muss man einen Debugger damit schwingen. WinDBG sollte bei der Ausnahme brechen, die das Programm zum Herunterfahren verursacht, aber es kann etwas schwierig sein, es zum ersten Mal zu verwenden. –

1

Sie können versuchen, Ihre App unter Abhängigkeit Walker (www.dependencywalker.com) ausführen. Wenn das Problem fehlt oder falsche Dlls, zeigt die Abhängigkeitswalker es sehr schnell.

1

Unter XP können Sie den integrierten Debugger ntsd.exe verwenden. Es ist im Grunde wie windbg Lite und erfordert keine zusätzliche Installation.

Verwandte Themen