Debuggen von DLL unter Visual Studio C++ 6.0



  • Ich verwende Visual Studio C++ 6.0, um eine alte Anwendung zu debuggen.

    Die Anwendung ist von einer DLL abhängig, deren Quellcode in einem eigenen VS-Projekt untergebracht ist.

    Wenn ich beim Debuggen der Anwendung in den Code der DLL springe, sehe ich nur Assemblercode, obwohl ich die DLL mit Debug-Informationen erstellt habe. Was muss ich tun, damit ich den Code der DLL wie den Rest der Anwendung debuggen kann?

    Danke im Voraus,

    Bernhard



  • Hallo bernhard_pauler,

    in dem Fenster mit dem Assemblercode mit der rechten Maustaste klicken
    und dann auf den Eintrag "Gehe zu Quellcode" klicken.
    Ansonsten die DLL in das andere Projekt einbinden,
    das geht auf jeden Fall. Voraussetzung ist natürlich, dass die DLL mit
    den Debuginformationen auch von dem anderen Projekt herangezogen wird.


  • Mod

    Ist die PDB Datei vorhanden und liegt diese in dem Verzeichnis wo die DLL auch erzeugt wurde oder liegt die PDB Datei zumindest in dem Verzeichnis in dem die DLL jetzt liegt (d.h. aus dem sie geladen wird)?



  • Danke für eure Antworten.

    Was fehlte war: Unter Projekt / Einstellungen / Kategorie Zusätzliche DLLs musste ich noch die DLL angeben. In der MSDN zum Thema Debuggen habe ich einen entsprechenden Hinweis gefunden. 🙄



  • Das musst man normalerweise nicht, nämlich dann nicht, wenn die DLL die über den normalen Suchpfad gefunden wurde jene DLL ist die man gerade kompiliert hat. Sagen wir mal man kompiliert in c:\source\..., die DLL findet er aber in c:\blubb\..., dann muss man die neu compilierte DLL auch nach c:\blubb\... kopieren. Wenn dort eine alte Version liegt, dann verweigert VC das entsprechende PDB File zu laden, da es nicht zum Binary passt. Kopiert man aber nach dem kompilieren die gerade erstellte DLL dorthin, dann muss man im VC keine weiteren Einstellungen machen, der findet dann alles ganz von alleine 🙂

    Nur als Ergänzung, es geht wohl auch so wie du es machst, obwohl ich das noch nie probiert habe.



  • Super 🙂 das problem hatte ich auch gerade und konnte es dank deines beitrages lösen. Hatte wohl aus versehen die DLL neu erzeugt und konnte dann in meinem Projekt nicht mehr mit dem Befehl "In aufruf springen" in den Quelltext gelangen.
    jetzt funzt es wieder *freu*

    vielen Dank! ^^ 😃


Anmelden zum Antworten