Gast
2013-07-22, 16:38:44
Hi Leute,
Folgende Ausgangssituation: ich habe ein Programm, das offenbar managed ist (nicht selbst programmiert, kein Quellcode verfügbar), dieses lädt per COM eine DLL, die managed ist und für die Quellcode zur Verfügung steht. Da die DLL per COM geladen wird, steht nicht fest, dass die DLL managed zu sein hätte, das Programm würde auch eine native DLL akzeptieren. Die fragliche DLL ist aber managed.
Um sicherzustellen, dass die DLL mit dem zur Verfügung stehenden Quellcode übereinstimmt und debugfähig ist, habe ich sie aus dem Quellcode neu erstellt, als Debug-Version, unter Visual Studio 2010. Ich habe die neu erstellte DLL auch korrekt im COM-System registriert mittels
RegAsm <DLL-Name> /codebase
Wenn ich nun aber das Programm starte und die DLL laden lasse und dann von Visual Studio 2010 aus die DLL per "An Prozess anhängen" debuggen will, dann werden die im Quellcode gesetzten Breakpoints deaktiviert, und ich erhalte, wenn ich den Mauszeiger auf einen der deaktivierten Breakpoints bewege, die Meldung:
"Der Haltepunkt wird momentan nicht erreicht. Für dieses Dokument wurden keine Symbole geladen."
Bei Google finde ich leider nichts zu dem Thema, das die Situation
Managed Prog <-> COM <-> Managed DLL
betreffen würde. Einzig fand ich den Hinweis, dass in den Projekteinstellungen der managed DLL die Option "Nicht verwaltetes Codedebugging aktivieren" gesetzt sein sollte, wenn die DLL von einem unmanaged Programm aus geladen wird (und COM ist ja unmanaged). Diese Option hat aber keine Wirkung.
Hat jemand ne Idee, wo das Problem liegen könnte?
Folgende Ausgangssituation: ich habe ein Programm, das offenbar managed ist (nicht selbst programmiert, kein Quellcode verfügbar), dieses lädt per COM eine DLL, die managed ist und für die Quellcode zur Verfügung steht. Da die DLL per COM geladen wird, steht nicht fest, dass die DLL managed zu sein hätte, das Programm würde auch eine native DLL akzeptieren. Die fragliche DLL ist aber managed.
Um sicherzustellen, dass die DLL mit dem zur Verfügung stehenden Quellcode übereinstimmt und debugfähig ist, habe ich sie aus dem Quellcode neu erstellt, als Debug-Version, unter Visual Studio 2010. Ich habe die neu erstellte DLL auch korrekt im COM-System registriert mittels
RegAsm <DLL-Name> /codebase
Wenn ich nun aber das Programm starte und die DLL laden lasse und dann von Visual Studio 2010 aus die DLL per "An Prozess anhängen" debuggen will, dann werden die im Quellcode gesetzten Breakpoints deaktiviert, und ich erhalte, wenn ich den Mauszeiger auf einen der deaktivierten Breakpoints bewege, die Meldung:
"Der Haltepunkt wird momentan nicht erreicht. Für dieses Dokument wurden keine Symbole geladen."
Bei Google finde ich leider nichts zu dem Thema, das die Situation
Managed Prog <-> COM <-> Managed DLL
betreffen würde. Einzig fand ich den Hinweis, dass in den Projekteinstellungen der managed DLL die Option "Nicht verwaltetes Codedebugging aktivieren" gesetzt sein sollte, wenn die DLL von einem unmanaged Programm aus geladen wird (und COM ist ja unmanaged). Diese Option hat aber keine Wirkung.
Hat jemand ne Idee, wo das Problem liegen könnte?