Autor Beitrag
King555
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 19.09.05 15:42 
Ich kann bei mir unter Windows XP SP2 keine DLLs debuggen. Weder in Delphi 3, noch in Delphi 7. Haltepunkte werden überall vollkommen ignoriert. Hat einer eine Idee, was man da machen könnte?
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Mo 19.09.05 16:16 
Hallo,

du öffnest dein DLL Projekt und setzt deine Haltepunkte. Dann trägst du unter Start->Parameter->Lokal->Host Anwendung eine EXE ein, welche deine DLL aufruft (die funktionen, die du auch debuggen willst). Danach kannst du mit F9 deine DLL Kompilieren und die Host Anwendung starten, jetzt sollten die Breakpints beachtet werden.

Gruß
Klabautermann
King555
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 19.09.05 16:33 
Danke für die Antwort, aber so einfach ist es nun wirklich nicht. Ich trage grundsätzlich die Host-Anwendung dort ein, wo du es gesagt hast. So auch bei meinen jetzigen DLL Projekten. Das bringt aber rein garnichts.

Kann es was mit der Dateiendung der DLL zu tun haben? Die Dateien heissen alle *.mdl (in den Projektoptionen ist "mdl" als Dateierweiterung eingetragen).
uall@ogc
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1826
Erhaltene Danke: 11

Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
BeitragVerfasst: Mo 19.09.05 16:58 
mit delphi3 konnte man doch noch gar nicht debuggen so viel ich weiß. normalerweise hat das nichts damit zu tun aber wenn du es vermutest könntest es doch einfach mal testen indem du die erweiterung rausnimmst und sie "dll" lässt.

_________________
wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
King555
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 19.09.05 17:20 
Natürlich kann man mit Delphi 3 debuggen, mit allem drum und dran. Aber es geht ja wie gesagt in Delphi 7 auch nicht.

Wegen der Erweiterung: Das Problem ist nur, dass die Host-Anwendung eben *.mdl haben möchte und ich habe den Quellcode der Host-Anwendung nicht, um das zu ändern. Es ist also etwas komplizierter, das ganze zu testen und daher wollte ich erstmal fragen, ob es überhaupt daran liegen kann, bevor ich mir Arbeit mache.

Ich habe übrigens von beiden Delphi Versionen die neuesten Updates installiert.
uall@ogc
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1826
Erhaltene Danke: 11

Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
BeitragVerfasst: Mo 19.09.05 17:24 
sicher das die dll überhaupt geladen wird?
ansonsten probiers einfahc mal mit ner eigenen hostanwendung aus, es soltle nicht daran liegen, aber bitte glaub jetzt nicht das wir für dich alle tests machen. wir geben auch nur tips.

also teste das mit der änderung mal mit einer eigenen hostanwensung, die msus ja nur die dll mal laden.

_________________
wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Mo 19.09.05 17:37 
Hi,
user profile iconuall@ogc hat folgendes geschrieben:
sicher das die dll überhaupt geladen wird?

wobei die Betonung hier auf die liegt. Kann es sein, dass Kompilierte Versionen der DLLs z.B. im System oder Anwendungsverzeichnis liegen und somit vor deinen zu Debuggenden gefunden wird? Denn die Host Anwendung wird das erste nehmen, was sie finden.

Gruß
Klabautermann
King555
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 20.09.05 08:36 
Ich habe gerade mal ein kleines Testprojekt angelegt. Eine DLL und eine EXE. Die DLL lässt sich einwandfrei debuggen, sowohl mit der Dateiendung .dll, also auch mit .mdl. An der Endung liegt es also nicht (hätte mich auch gewundert). Das debuggen funktioniert also generell bei DLLs bei mir, nur nicht bei den wichtigen Projekten. Ich weiß leider nicht, wie die Hostanwendung dort die DLLs lädt, bei meinem Test habe ich die DLL mittels der "external" Anweisung eingebunden.

Die DLL, die ich debuggen möchte, ist aber definitv die, die auch gestartet wird. Erstens gibt es von der DLL nur ein Exemplar auf allen Festplatten zusammen und zweitens werden Änderungen in der DLL ja sofort im Programm sichtbar.

Hat noch jemand eine Idee?