Benutzer mit den meisten Antworten
Debuggen einer nativen C/C++ DLL funktioniert nicht

Frage
-
Hi,
ich habe eine C/C++ DLL Projekt und wollte nun den Debugger für eine exportierte Methode anwerfen. In der Methode rufe ich testweise eine AfxMessageBox auf, auf der auch der Breakpoint steht. Zum starten des Projektes habe in den Debugeinstellungen rundll32 eingetragen. Das Projekt wird zwar gestartet (die Message Box erscheint), aber der Debugger stoppt nicht am Breakpoint. Ich habe schon alles durchforstest. Die Debugeinstellungen sind richtig, die PDB Datei wird erzeugt und beim Debug Start werden die Symbole auch geladen (Debugger Ausgabe). Testweise habe ich auch eine Konsolenanwendung erstellt, in der ich die DLL lade und das DLL Projekt dort eingebunden. Das Konsolenprojekt lässt sich debuggen, aber die DLL immer noch nicht. So langsam bin ich echt ratlos. Könnte es daran liegen, dass auf meinem System der MDM nicht installiert ist!? Oder wird der nicht mehr benötigt!? Verwenden tue ich Visual Studio 2012 Ultimate. Bin echt für jeden Tipp dankbar :-)
Gruß
Martin
Antworten
-
Hi,
am Freitag bin ich noch ein Stück weiter gekommen. Erstmal funktioniert nun das Debuggen über die eigene Konsolen Anwendung. Warum das nun geht, keine Ahnung. An den Projekteinstellungen hatte ich nichts mehr geändert. Evtl. war es eine allgemeine Debugger Einstellung. Was mir später aufgefallen ist: Wenn man das Projekt über rundll32 startete, das die Symbole für die DLL geladen und sofort danach wieder entladen wurden. Und das mehrfach (5-6 mal) direkt hintereinander!? Keine Ahnung, was da passiert. Besser ist aber noch, wenn ich die Anwendung ohne Debugger startete und mich dann mit dem Debugger an den rundll32 Prozess hänge, funktioniert es auch wieder. Ich benutze nun meine Test Anwendung und damit scheint es im Moment zu laufen. Irgendwie scheint sich rundll32 da nun etwas seltsam zu verhalten.
Gruß
Martin
- Als Antwort markiert Ciprian Bogdan Dienstag, 7. Januar 2014 15:32
Alle Antworten
-
Hi,
am Freitag bin ich noch ein Stück weiter gekommen. Erstmal funktioniert nun das Debuggen über die eigene Konsolen Anwendung. Warum das nun geht, keine Ahnung. An den Projekteinstellungen hatte ich nichts mehr geändert. Evtl. war es eine allgemeine Debugger Einstellung. Was mir später aufgefallen ist: Wenn man das Projekt über rundll32 startete, das die Symbole für die DLL geladen und sofort danach wieder entladen wurden. Und das mehrfach (5-6 mal) direkt hintereinander!? Keine Ahnung, was da passiert. Besser ist aber noch, wenn ich die Anwendung ohne Debugger startete und mich dann mit dem Debugger an den rundll32 Prozess hänge, funktioniert es auch wieder. Ich benutze nun meine Test Anwendung und damit scheint es im Moment zu laufen. Irgendwie scheint sich rundll32 da nun etwas seltsam zu verhalten.
Gruß
Martin
- Als Antwort markiert Ciprian Bogdan Dienstag, 7. Januar 2014 15:32
-
Es freut uns, dass Du Dein Problem lösen konntest und danke, dass Du Deine Lösung hier im Forum gepostet hast. Jetzt können auch andere die das gleiche Problem haben unter Umständen davon profitieren.
Ciprian Bogdan, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip„Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.