AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

COM DLL - keine Breakpoints

Ein Thema von Ralf Kaiser · begonnen am 10. Aug 2009 · letzter Beitrag vom 11. Feb 2013
Antwort Antwort
Benutzerbild von Ralf Kaiser
Ralf Kaiser

Registriert seit: 21. Mär 2005
Ort: Wuppertal
926 Beiträge
 
Delphi 10.3 Rio
 
#1

COM DLL - keine Breakpoints

  Alt 10. Aug 2009, 10:04
Hallo,

ich habe da eine COM DLL die ich mit D2007 unter Vista debuggen will. Ich habe dazu die Hostanwendung eingetragen und dann in der COM DLL die Breakpoints gesetzt.

Starte ich dann die Hostanwendung (die COM DLL ist das aktive Projekt, getsartet wird da die Hostanwendung unter "Start/Parameter" eingetragen ist) so werden die Breakpoints die ich gesetzt habe als inaktiv dargestellt. (grüne Zeilenmarkierung, Breakpoint mit einem "x" durchgestrichen)

DLL und Hostanwendung befinden sich im selben Verzeichnis. Das Verzeichnis ist auch im (DOS-) PATH enthalten. Das Ausgabeverzeichnis für DCUs ist für Host und DLL das selbe.

Wähle ich dann "Start/Mit Prozess verbinden" so kann ich die Hostanwendung nicht mehr auswählen weil sie anscheinend schon mit dem Debugger verbunden ist. Trotzdem funktionieren die Breakpoints nicht.

Das seltsame ist, dass dieses Debugging, allerdings auf einem anderen Rechner, bisher funktioniert hat. Ich bin mir aber nicht bewusst auf diesem Rechner etwas anders eingerichtet zu haben.

Kann mir jemand einen Tipp geben, an welchen Setllen ich noch nachsehen kann, an welchen Schrauben ich noch dreahen kann?

Danke schon mal,
Ralf
Ralf Kaiser
  Mit Zitat antworten Zitat
Benutzerbild von Ralf Kaiser
Ralf Kaiser

Registriert seit: 21. Mär 2005
Ort: Wuppertal
926 Beiträge
 
Delphi 10.3 Rio
 
#2

Re: COM DLL - keine Breakpoints

  Alt 13. Aug 2009, 09:43
Hallo,

mittlerweile habe ich herausgefunden, warum der Debugger bei COM DLLs streikt:

DEr Regitrierungsmechanismus mit dem Delphi eine COM DLL in die Registry einträgt benutzt beim erzeugen der Registrykeys kurze Dateinamen (also die mit der Tilde "~"). Scheinbar findet der Debugger diese dann nicht. Trägt man die DLL mit "normalem", also langem, Dateinamen ein dann ist das Debuggern problemlos möglich.

Eine Bitte:

Kann Bitte mal jemand der im Moment D2009 (oder auch schon D2010) einsetzt nachsehen, ob dies bei diesen Versionen immer noch der Fall ist?

Die Eintragung der DLL findet normalerweise über "TCOmObjectFactory.UpdateRegistry()" statt. Diese Methode befindet sich in der Unit "ComObj"

Wäre echt nett wenn ein D2009-Benutzer unter euch mal eben einen Blick in diese Unit werfen könnte und nachsehen könnte ob dort immer noch diese Zeilen zu finden sind:

Delphi-Quellcode:
ShortFileName := FComServer.ServerFileName
if AnsiPos(' ', ShortFileName) <> 0 then
  ShortFileName := ExtractShortPathName(ShortFileName)
Ich werde die Registrierung jetzt erstmal in einem eigenen Factory-Object, das nicht die geerbte Methode benutzt, erledigen.

Ciao,
Ralf
Ralf Kaiser
  Mit Zitat antworten Zitat
Humbucker

Registriert seit: 8. Feb 2013
Ort: im Lahntal
25 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: COM DLL - keine Breakpoints

  Alt 11. Feb 2013, 18:31
Hallo Ralf,

ich habe das selbe Problem mit einer "normalen" DLL seit ich auf Delphi XE2 umgestiegen bin. Mit Delphi 7 hat das Debuggen der DLL problemlos funktioniert. Seit Delphi XE2 werden die Breakpoints entfernt und der Debugger läuft einfach durch. Leider verstehe ich nicht wirklich, wie ich das Problem in meinem Fall lösen kann. Betrifft der Lösungsansatz nur COM DLLs?

Falls ja, wie kann das Problem mit einer normalen DLL gelöst werden?

Danke für die Info

Gruß Michael

-------------------
Nachtrag:

Ich habe eben mal die Registry nach dem vollständigen Namen und dem 8.3 Namen (also mit Tilde) durchsucht und keine Treffer bekommen.
-------------------
Michael H.

Geändert von Humbucker (12. Feb 2013 um 07:35 Uhr)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf