DLL Debuggen?



  • Ja, auf das mit dem Ausführbaren Programm bin ich in der MSDN auch gestoßen. Wenn ich das allerdings mache, zeigt er mir die Haltepunkte mit Fragezeichen an,und ignoriert sie.
    Und im Hauptprogramm kann ich keine Punkte setzen, da das Hauptprogramm von MIcrosoft ist, und ich da keinen Einfluss drauf hab ^^

    Könntest du mir sonst vielleicht noch einen Tipp geben wie das mit dem Ausführenden Programm einstellen funktioniert?


  • Mod

    Hast Du auch wirklich einen Debug Build erzeugt und liegt die entsprechenden PDB Datei auch im selben Verzeichnis der DLL oder zumindest in dem Verzeichnis in dem der Build erfolgte.

    Schau mal in den Debug Fenstern unter "Modules" dort findest Du alle geladenen DLLs evtl. ist Deine DLL gar nicht geladen.



  • Wenn die DLL als Startprojekt gekennzeichnet ist und die EXE als Ausführbares Programm, dann solltest Du vielleicht noch darauf achten, ob genau die DLL ausgeführt wird, die Du debuggen willst (siehe Ausgabefenster).
    Dann verschwindet das Fragezeichen während der Ausführung.

    Evt.wird eine andere DLL gestartet, die auf dem PC liegt?

    Tester2



  • 'WCESMgr.exe': 'C:\Dokumente und Einstellungen\admin\Eigene Dateien\Visual Studio Projects\ASPSimple\Debug\ASPSimple.dll' geladen, Symbole geladen.

    Das steht unten in Ausgabe: Debuggen. Modules finde ich nicht.

    Muss ich die DLL mit F5 starten? Momentan sieht es so aus, das ich den ActiveSync-Manager deativieren muss, dann erstelle ich die DLL, dann starte ich den Manager. (wenn der Manager an ist, kann ich die DLL gar nicht erstellen, da er die DLL dauerhaft "blockiert"). Ich kann aber, wenn ich erst erstelle, dann den Mgr starte und dann F5 drücke wohl in einen Debugmodus kommen.

    Hilft das weiter?



  • noch ein Nachtrag:
    Das ausführbare Programm stellst Du ein unter:

    Eigenschaften/ Debuggen/ Befehl



  • Achja, (ganz vergessen): Die DLL wird direct aus dem Debugverzeichnis heraus geladen, also sind alle pdbs / Libs etc vorhanden

    Das Programm habe ich gesetzt (C:\Programme\Microsoft ActiveSync\WCEMgr.exe)



  • Muss ich die DLL mit F5 starten?

    Ja klar.



  • Noch nicht?

    Da die Debug-Dll geladen wird, sollte es eigentlich gehen. Aber ich habe es bisher nur mit eigenen Programmen gestartet. Da konnte ich dann in der EXE und in der DLL debuggen.



  • Hm. Also die DllMain debugged er jetzt. Nur alle anderen Funktionen (die vom Manager aufgerufen werden) nicht.
    Wenn ich die DLL mit F5 starte, synchroniziert der Manager nicht mehr (ruft also die Funktionen die ich brauche nicht mehr auf), wenn ich es per SyncKnopf mache, dann werden die Haltepunkte nicht aufgerufen.

    Ich bastel jetzt einfach zu Begin und Ende jeder Funktion eine kleine Dateiausgabe, das hilft mir wahrscheinlich auch schon ^^



  • Du kannst auch ab visual studio .net

    einfach den prozess dranhängen. dazu öffnest du einfach den cpp code deiner dll im studio, das programm startest du, jetzt hängst du den prozess deines programms einfach dran. und jetzt kannste du auch breakpoints setzen. wenn dein programm jetzt code ausführen will, von der dll, dann spring VS automatisch da rein. so debugge ich serveranwendugen welche eine dll ( .mo ) benötigen. da hängt ich einfach den prozess des hostsystems ( z.b. apache ) an.


Anmelden zum Antworten