2013-05-07 5 views
9

Wir haben eine .NET-Anwendung, die viele in VB6 geschriebene ältere Komponenten verwendet. Wir konnten den VB6-Code mithilfe von Debugger für systemeigenen Code und generierten PDB-Dateien in Visual Studio 2010 debuggen. Nach dem Upgrade auf VS 2012 (einschließlich Update 2) können wir dies nicht tun.VB6-Code aus Visual Studio 2012 debuggen

Modulfenster zeigt folgende Meldung:

Binary wurde nicht mit Debug-Informationen gebaut.

Sie können auch folgende Meldung im Ausgabefenster finden:

Modul wurde ohne Symbole gebaut.

Wenn ich versuche, Symbole manuell zu laden, ich folgende Meldung:

Eine passende Symboldatei in diesem Ordner nicht gefunden wurde.

Debuggen der gleichen DLL oder EXE von VS 2010 funktioniert gut.

Gibt es eine Option, um es zu aktivieren?

+0

Verwenden Sie VC++ Debugger für die Aufgabe oder was? –

+1

Kann Ihre Frage nicht beantworten, würde aber gerne mehr über das Debugging von Interop VB6 mit VS2010 erfahren! Klingt wie eine Zeitersparnis für ältere gemischtsprachige Apps. – tcarvin

+0

Finden Sie Details zum Debuggen von VB6 in VS 2010 in diesem Artikel (http://blogs.msdn.com/b/robgruen/archive/2004/11/09/254602.aspx) – Pecan

Antwort

7

Ich habe endlich gefunden, wie Debuggen VB6-Komponenten mit Visual Studio 2012 zu aktivieren. Kurz gesagt, müssen Sie das alte PDB-Format zuerst aktivieren, indem Sie Optionen | Debuggen | Bearbeiten und Fortfahren | Aktivieren Sie native Bearbeiten und Weiter und dann können Sie wie gewohnt an die dllhost.exe anhängen.

+1

Dies funktionierte auch für ein altes VC6 C++ Projekt. Vielen Dank! –

+0

Danke für die Erwähnung von VC++ 6, @EdBayiates. ENDLICH bekam eine gültige, funktionierende Antwort nach Tagen des Haarziehens und Zähneknirschens an Assembler- und Mapping-Adressen! – Hugo

1

Es scheint, dass VS 2012 MSDIA110.dll verwenden, um Symboldateien zu dekodieren, gibt es ein DIA SDK-Beispiel in VS-Ordner, können Sie testen, ob es diese VB PDB-Dateien analysieren kann. wenn es nicht möglich ist, ich denke, die neue version DIA unterstützt nicht mehr die alte version pdb.

+0

Ich hatte das Beispiel erstellt und versucht, die PDB-Datei zu analysieren und alles funktionierte.Ich überprüfte auch, dass es die C: \ Programme (x86) \ Microsoft Visual Studio 11.0 \ Common7 \ Packages \ Debugger \ msdia110.dll verwendet. – Pecan

+0

gut, dann würde ich vorschlagen, dass Sie einen Fehler an Microsoft melden, wenn VB noch unterstützt wird. – xwlan

7

Ich fand eine Lösung, die auf meinem Computer funktioniert (per Microsoft Kommentare zu ScottG paid support request - danke, Scott). Offenbar von Visual Studio Standard-Debugger ist nach 2010 behandelt nicht VB6 DLLs, aber es gibt eine Option, um den alten Debug Engine zu verwenden, das tut:

enter image description here

Ich habe nicht india Bearbeiten aktivieren müssen und weiter.

+4

Funktioniert auch in Visual Studio 2015 –

+0

Ja, ich kann bestätigen, das war die Lösung für mich in VS2015 und unsere VB6 COM DLL. – scipilot

+0

Visual Studio 2015 ist möglicherweise das Ende der Zeile. Ich habe keine Möglichkeit gefunden, VB6-Code mit Visual Studio 2017 zu debuggen. –

0

Wählen Sie in VS 2015 Extras-> Optionen-> Debugging-> Allgemein 'Native Kompatibilitätsmodus verwenden'. Es nervt, dass ich immer noch VB6 debuggen muss, aber ich bin dankbar, dass ich das noch kann.

+0

Nur zu bemerken, dass ich, als ich den 'Native Kompatibilitätsmodus verwenden' hatte, Probleme hatte, meine Breakpoints zu treffen. Die Deaktivierung des "nativen Kompatibilitätsmodus verwenden" behebt die Probleme. Das Setting ist also nicht ohne Probleme. –