Visual Studio 2011: DLL debuggen



  • Hi,

    ich habe hier ein paar seltsame Probleme mit dem Visual Studio. Ich habe eine DLL (als Debug gebaut), welche von einem anderen Programm (ebenfalls Debug-Version) aufgerufen wird.

    Im Studio habe ich in den Projekteinstellungen des DLL-projektes unter "Debugging" / "Command" jetzt dieses Programm, welches die DLL benutzt, angegeben. Wenn ich das Programm aus meinem DLL-Projekt heraus starte, gehen mir aber sämtliche Breakpoints im DLL-Code verloren, das Studio zeigt mir zu diesen dann nur noch an, dass sie nicht gesetzt werden konnten weil die entsprechenden Symbole nicht geladen wurden.

    Was geht denn da schief? Bzw. wie kann man in VS2011 solche DLLs vernünftig debuggen?



  • Das geht eigentlich problemlos. Hast du mal was an den Projekteinstellungen geändert? Für den Debug-Build sollte folgendes eingestellt sein:

    C/C++ => Allgemein => Debuginformationsformat => Programmdatenbank zum Bearbeiten und Fortfahren

    Linker => Debugging => Debuginfo generieren => Ja (/DEBUG)

    Und beachte: die Breakpoints werden erst als aktiv angezeigt (ausgefülltes Rot), wenn die DLL geladen ist. Also versuche mal, eine DLL-Funktion wirklich auszuführen. Wenn die Breakpoints dann immer noch nicht funktionieren, liegt es an den Projekteinstellungen.



  • Dann wird eine andere DLL geladen, vielleicht nicht die Debug, sondern die Release? Entferne alle DLLs die aus deinem DLL-Projekt stammen und baue nur diese eine Debug DLL, dann sollten die Symbole vorhanden sein.

    Zur Not kannst du im Einsprungspunkt auch

    GetModuleFileName( GetModuleHandle("myDLL.dll" ),Path,sizeof(Path));
    

    aufrufen und mit OutputDebugString in das Output-Fenster ausgeben, dann siehst du woher sie geladen wird.

    Du kannst ebenfalls ein __debugbreak(); im Einsprungspunkt (z.B. DllMain) einbauen, dann rechtsklick auf die Funktion im callstack fenster und die Symbols nachladen.

    Wenn deine Dll aus anderen Projekten heraus "debugbar" ist, wird ja mit den projekt settings vermutlich alles stimmen.



  • Dieser Thread wurde von Moderator/in rüdiger aus dem Forum Rund um die Programmierung in das Forum Compiler- und IDE-Forum verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


Anmelden zum Antworten