Frage

Ich möchte ein Stück Code in C geschrieben debuggen ++. Das Problem ist, dass die dll gemischt ist - es enthält sowohl C ++ und CLI (Managed C ++). Die Umgebung ist VS 2005.

Mein Einstiegspunkt ist ein sehr einfaches ausführbares Projekt, in C ++ geschrieben, die nur den Code in der gemischten dll beginnt.

Das Problem ist, dass:

  1. , wenn ich die „Debug-Typ“ als Auto für beide Projekte lassen, meine Haltepunkte werden nicht getroffen. (Später bearbeiten: Das ist normal, da Auto auf den Inhalt der ausführbaren Projekt basiert).

  2. , wenn ich es auf „gemischte“ werden die Haltepunkte getroffen, aber die nicht verwalteten Uhren leer sind. Zum Beispiel kann ich den Wert eines std nicht sehen :: string. Ich kann jedoch grundlegende Typen wie int und bool sehen.

War es hilfreich?

Lösung

Ich kann im gemischten Modus in VS2005 debuggen, indem Sie den Debugger Typen gemischt in den Projekteigenschaften einstellen (auf der Registerkarte Debuggen). Manchmal ist diese Art von Dingen geht weg nach einem schönen Neustart und ein sauberer wieder aufzubauen.

Wenn das nicht Sie nicht funktioniert versuchen, auf die Anwendung angebracht, nachdem es beginnt zu laufen (Debug | Attach to Process). Sie können durch Drücken der Taste „Select“ in der Mitte des Debug-Modus wählen neben den „Attach to:“. Abschnitt

Haben Sie alle Updates von Microsoft? Es könnte man da draußen sein, das Ihr Problem löst.

Im allgemeinen gemischten Modus Debuggen scheint in VS2008 viel besser zu arbeiten. Ich empfehle Ihnen einen Upgrade, wenn Sie können. Es gibt eine kostenlose Version zur Verfügung, aber ich denke, daß seine in irgendeiner Weise eingeschränkt.

Andere Tipps

Versuchen Sie auch, Ihre Debugger Mixed Einstellung. Dies ermöglicht das Debuggen von sowohl verwalteten und nicht verwalteten Code.

Sie sicher, dass Sie alle Debugging-Optionen aktiviert? Ich habe gesehen, dies geschieht, wenn einige ‚vergessen‘ bei dem Versuch, das Labyrinth von C ++ Optionen zu navigieren.

ich meine 2005/2008 nicht Umwelt vor mir, aber ich scheine zu erinnern, eine Option ist, die in den Projekteinstellungen aktiviert werden muss (ich die Debug-Register glaube), um nicht verwaltete Debuggen zu tun. Sobald diese Option aktiviert ist, sollten Sie keine Probleme haben.

Sie müssen Visual Studio sagen, mehr zu debuggen als nur verwalteten Code. Gehen Sie zu Extras | Optionen, wählen Sie Debugging | Allgemeines. Deaktivieren Sie das Kontrollkästchen neben "Aktivieren Just My-Code (Managed-only)".

LanceSc Rat hilft wirklich.
Gehen Sie zu Extras | Optionen, wählen Sie Debugging | General.
Deaktivieren Sie das Kontrollkästchen neben "Enable Just My-Code (Managed-only)"
Dies löst das Problem in VS2008.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top