AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Breakpoint setzen versagt in Unit...; Delphi 6
Thema durchsuchen
Ansicht
Themen-Optionen

Breakpoint setzen versagt in Unit...; Delphi 6

Ein Thema von maanton · begonnen am 22. Sep 2007 · letzter Beitrag vom 16. Aug 2013
Antwort Antwort
Seite 1 von 2  1 2      
maanton

Registriert seit: 10. Sep 2007
16 Beiträge
 
#1

Breakpoint setzen versagt in Unit...; Delphi 6

  Alt 22. Sep 2007, 03:09
Hallo,

ich hab schon was ähnliches über die Suche gesehen, aber das Thema wurde nicht erfolgreich behandelt.

Ich möchte einen Breakpoint setzen, aber er mag mich nicht.

Breakpoint(s) sollen in einer Unit (einem Thread) gesetzt werden, in der ganzen Unit gehen die Dinger nicht.
In anderen Units gehn die Breaks. Auch in einem von der Unit aufgerufenen Fenster( besser : dessen Routinen) funzt es.

Es ist auch die richtige Unit (statisch im Hauptprogramm) - die Unit hab ich gestern komplett umgestellt - gibt es sonst nicht auf dem Rechner. (Das Thema mit nicht funktionierenden Breaks hat ich schon mit eingebundenen DLLs).
Der Thread ruft ein Fenster auf - das Fenster kommt und funktioniert (nicht so 100% - aber das schieb ich auf Fehler in der "neuen" Füllroutine...). Thread schreibt auch korrekt seine Ausführung in LogDatei.


Ein bisserl Code :

Delphi-Quellcode:
ThreadNeueAdresse.Execute;
var Messg : TMsg;
    nilpointer : pointer;
    ErrorInfo : TErrorInfo;
    bFertigMitFenster : boolean;
    nWindowsCount : integer;

begin
  bFertigMitFenster := false; <- breakpoint hier geht nicht
  if MainHWND = 0 then begin
    ...
    exit
  end;
  PeekMessage(...); <- break auch hier geht nicht
 ...

end;
Was mach ich falsch, was hab ich übersehen ? Möglicherweise eine Einstellung spezifisch für die Unit in der IDE ?
Gemacht hab ich:
IDE-Neustart, Rechner Neustart,
{$D-} im Projekt schon gesucht - auch "händisch".
DCU-Datei schon gelöscht.
Compiler macht auch keine Optimierung mehr.
Was hab ich noch nicht gemacht : Code von gestern (vor den Änderungen) eingespielt .

Gruss
maanton
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Breakpoint setzen versagt in Unit...; Delphi 6

  Alt 22. Sep 2007, 07:14
wie heißt die unit?
hast du sie dem Projekt hinzugefügt?
Hast du auch keine Unit die den gleichen Namen hat so das eventuell die andere genommen wurde?
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: Breakpoint setzen versagt in Unit...; Delphi 6

  Alt 22. Sep 2007, 08:14
Dieses Verhalten hat mich auch an den Rand der Verzweifung gebracht. Ursache ist immer(!)

a) DCU gleichen Namens in einem anderen* Verzeichnis
b) PAS gleichen Namens in einem anderen* Verzeichnis

* Dieses andere Verzeichnis wird von Delphi beim Kompilieren früher gescannt, als die von dir sichtbare Datei.

Stelle einfach sicher (wie der Sir schon gesagt hat), das es keine DCU bzw. PAS Datei auf der Platte gibt.

Ich verwende einige blöde Tricks, wenn ich mir nicht ganz sicher bin:
1. Nach dem Kompilieren werden im IDE-Editor alle Zeilen mit so einem blauen Bupsel markiert. Wenn diese beim Starten des Programms NICHT verschwinden, scheidet a) aus.
2. Irgendwo in der Unit einen Syntaxfehler produzieren und Kompilieren. Wird der Fehler erkannt, scheidet b) aus.

Sollte damit eigentlich funktionieren.

Sehr lustig sind auc Effekte, wo die Zeileninformation nicht mehr stimmt, dann werden 'Var'-Zeilen plötzlich zu Programmzeilen und Programmfehler werden z.B. hier angezeigt:

Delphi-Quellcode:
End;
// hier tritt der Fehler auf, hö hö

Procedure FooBar;
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#4

Re: Breakpoint setzen versagt in Unit...; Delphi 6

  Alt 22. Sep 2007, 13:54
Hast du schonmal Umschalt+F9 verwendet? = Alles neu kompilieren.

Es kann auch sein, dass es ein Package (bpl) gibt, worin diese Unit enthalten ist. Dann geht die Arbeit aber auch schon richtig lost. Schau mal in den Projektoptionen, ob dort ungewöhnliche Pakete drin sind.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#5

Re: Breakpoint setzen versagt in Unit...; Delphi 6

  Alt 22. Sep 2007, 15:13
projektoption "debug dcu" eingeschaltet?
  Mit Zitat antworten Zitat
maanton

Registriert seit: 10. Sep 2007
16 Beiträge
 
#6

Re: Breakpoint setzen versagt in Unit...; Delphi 6

  Alt 22. Sep 2007, 17:44
Hallo !
- also : Die Unit heisst ThreadNeueAdresse.pas
- Die Unit - auch die Source - gibt es nur einmal auf dem Rechner (spez. Entwicklungsrechner nur für dieses Projekt, keine Backups)
- Das Löschen der DCU-DAtei führte zu einer Neuerstellung der DCU (Datum,Uhrzeit passt) - ist also wohl die Richtige
- Bei der Neueingabe von Routinen hattte ich -erwartete- FEhlermeldungen beim Kompilieren
- Das Debuggen in der Unit hat schon mal funktioniert; ist aber schon länger her und ich meine was danach in den Projekteinstellungen geändert zu haben - aber was ?
- debug dcu ist eingeschaltet - wie schon gesagt, die anderen Units gehn...


Meine aktuelle Vermutung ist, dass die Unit im Projekt nicht richtig (oder mehrfach) angemeldet ist. Werde daher das Projekt neu aufsetzen. Könnte sein, dass ich als Neueinsteiger damals (bei Projektübernahme) dort falsche Einstellungen vorgenommen habe.

Melde mich, wenn damit durch ... .

Gruss
und ein schoenes Rest WE
maanton
  Mit Zitat antworten Zitat
maanton

Registriert seit: 10. Sep 2007
16 Beiträge
 
#7

Re: Breakpoint setzen versagt in Unit...; Delphi 6

  Alt 24. Sep 2007, 20:51
Hallo !

Und hier die Auflösung des Preisrätsels :

In der Interface-Sektion ist eine Recordliste nit DB-Felddaten definiert :
Delphi-Quellcode:
NA_LADETABELLE : array [0..40] of TDBFeldInfoRecord = (
  (
   FeldName : 'VORNAME';
   FeldTyp : 'ZEICHEN';
   ...
   Editierbar : FALSE;
   Angezeigt : TRUE;
   ...
   LabelName : 'LPRENAME';
   LabelText : '&Vorname : '
  ),(
   FeldName : 'NAME';
   FeldTyp : 'ZEICHEN';
   ...
  ),(
   ...
  ),
  ...
);
Diese Recordtabelle dient zur Steuerung der Ausleseroutinen, Darstellungsroutinen, Userrechte, ... . Es sind also alle Infos dadrin verpackt, die man Feldspezifisch, Componentspezifisch,... so braucht ... . Einzelfelder des Records (z.B. LabelText) wurden als shortstring deklariert. Daher ist der Speicherbedarf des ganzen Blockes (bei 41 Elementen) ziemlich gross (> 64K);

Was also in einer anderen Unit mit 22 Elementen noch funktioniert hat (also das Setzen von Breakpoints) funzte bei 41 Elementen nicht mehr.

Es spielt dabei (wohl) keine Rolle (habs nicht ausprobiert) , ob man mehrere Konstantendeklarationen hat die dann in Summe 64K überschreiten).

Verkürzung der String-Deklarationen via string[10] bzw. string[100] brachte das gewünschte Resultat .

Vielen Dank für die Unterstützung
maanton
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#8

Re: Breakpoint setzen versagt in Unit...; Delphi 6

  Alt 26. Sep 2007, 08:28
Wieder was dazu gelernt.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#9

AW: Re: Breakpoint setzen versagt in Unit...; Delphi 6

  Alt 15. Aug 2013, 17:17
Dieses Verhalten hat mich auch an den Rand der Verzweifung gebracht. Ursache ist immer(!)

a) DCU gleichen Namens in einem anderen* Verzeichnis
b) PAS gleichen Namens in einem anderen* Verzeichnis

* Dieses andere Verzeichnis wird von Delphi beim Kompilieren früher gescannt, als die von dir sichtbare Datei.

Stelle einfach sicher (wie der Sir schon gesagt hat), das es keine DCU bzw. PAS Datei auf der Platte gibt.
Nein, alzaimar, das ist leider nicht immer die Ursache.

Zur Zeit quäle ich mich mit den Units der Langzahlenbibliothek "NX" von Marcel Martin. Weder Delphi4 noch Delphi 5 ist in der Lage, irgendwelche potentiellen Breakpoints in den betreffenden Units anzuzeigen, geschweige denn, welche zu setzen oder gar bei diesen zu stoppen. Dabei wird Code dort eindeutig ausgeführt (kann man z.B. mit kleinen Pieptönen überprüfen, Initialisationscode wird ohnehin immer ausgeführt), auch dort finden sich keine). Bei anderen eingebundenen "externen" Units im gleichen Projekt finden sich die blauen Punkte hingegen. Namensdoubletten waren tatsächlich vorhanden, doch die sind längst gelöscht, Delphi längst neu gestartet...

Mit Delphi erlebt man zwar im Verlaufe der Jahre auch so manches Abenteuer, aber einen solch brachialen Fehler dieser Programmierumgebung habe ich bisher noch nie erlebt.

Geändert von Delphi-Laie (15. Aug 2013 um 17:20 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.589 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Breakpoint setzen versagt in Unit...; Delphi 6

  Alt 15. Aug 2013, 17:31
Hast du die ganzen Dateien wie .identcache und so schon gelöscht? Die verursachen das ganz gerne... also im Grunde alles bis auf (bei Delphi 5) .dpr, .res, .pas und .dfm bei normalen Projekten mit nur Projekt + Formulare.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 17:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz