AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi 6 -> Delphi 10.2

Ein Thema von Temi00 · begonnen am 4. Apr 2018 · letzter Beitrag vom 6. Apr 2018
Antwort Antwort
Seite 1 von 2  1 2      
Temi00

Registriert seit: 1. Aug 2004
9 Beiträge
 
#1

Delphi 6 -> Delphi 10.2

  Alt 4. Apr 2018, 16:31
Hallo Forum,
ist wahrscheinlich einfach aber ich Möchtegern-Delphi-Programmierer weiß grad mal wieder nicht weiter. Wir hatten bis vor kurzen in der Firma Delphi 6 und jetzt Delphi XE 10.2 Tokyo gekauft. Das Project extern durch ein Freelancer auf 10.2 hieven lassen. Hat auch funktioniert. Danach hatten sich ein paer ZQueries noch über verschiedene Datentypen beschwert. Das konnte ich beheben. Ich konnte auch das Project übersetzen und laufen lassen.

Danach habe ich in dem rechten Balken in den Projektoptionen den Buildpfad geändert. Und in den Optionen Editor Smarttabs eingeschaltet. Plötzlich kann ich das Projekt nicht mehr Übersetzen und der Debugger springt zu ZTokenizer. Ich kann machen was ich will. In der Versionskontrolle auf eine frühere Version gehen hilft auch nicht. Alles löschen und die sourcen von dem externen Entwickler zu nehmen bringt den selben Fehler. Mache ich aber ein völlig neues Projekt (Ein Formular, DBGrid und die dazugehörigen Datenbank-Komponenten. Das geht.

Ich habe also folgende Bild:

gehe ich zu einem früheren Quellcode habe ich den Fehler immer noch. Kann also nicht in den Sourcen liegen. Habe ich doch irgebdwas in den Einstellungen von Delphi geändert.

Mache ich aber ein völlig neues Projekt mit den Zeos-Komponenten. Dann funktioniert das???

Neben bei weiß einer ein gutes Buch für Delphi 10.2 oder Online Video-Kurs der speziell auf Debugging auch eingeht?
aber eigentlich bräuchte ich auch OO-Programmieren allgemein. sonst wurschtel ich hier ewig weiter

also wenn ich mit F9 starte kommt am ende Folgende Meldung

Project azShop.exe raised exception class $C0000005 with message 'access violation at 0x006c7022: read of address 0x00000004'.

Klicke ich auf Break

Thread Start: Thread ID: 4228. Process azShop.exe (8852)
Process Start: C:\Users\Micha\Documents\dev\Tokyo-Source\amorebioshop7\dev\azShop\azShop.exe. Base Address: $00400000. Process azShop.exe (8852)
Module Load: azShop.exe. Has Debug Info. Base Address: $00400000. Process azShop.exe (8852)
Module Load: ntdll.dll. No Debug Info. Base Address: $774F0000. Process azShop.exe (8852)
Module Load: KERNEL32.dll. No Debug Info. Base Address: $76FC0000. Process azShop.exe (8852)
Module Load: KERNELBASE.dll. No Debug Info. Base Address: $74470000. Process azShop.exe (8852)
Module Load: COMDLG32.dll. No Debug Info. Base Address: $74C70000. Process azShop.exe (8852)
Thread Start: Thread ID: 5512. Process azShop.exe (8852)
Module Load: msvcrt.dll. No Debug Info. Base Address: $76E10000. Process azShop.exe (8852)
Module Load: WINMM.dll. No Debug Info. Base Address: $70410000. Process azShop.exe (8852)
Module Load: WINSPOOL.DRV. No Debug Info. Base Address: $737C0000. Process azShop.exe (8852)
Module Load: combase.dll. No Debug Info. Base Address: $77180000. Process azShop.exe (8852)
Module Load: ucrtbase.dll. No Debug Info. Base Address: $746A0000. Process azShop.exe (8852)
Module Load: RPCRT4.dll. No Debug Info. Base Address: $76AB0000. Process azShop.exe (8852)
Module Load: WINMMBASE.dll. No Debug Info. Base Address: $702C0000. Process azShop.exe (8852)
Thread Start: Thread ID: 1392. Process azShop.exe (8852)
Module Load: CFGMGR32.dll. No Debug Info. Base Address: $76DD0000. Process azShop.exe (8852)
Module Load: IPHLPAPI.DLL. No Debug Info. Base Address: $73B10000. Process azShop.exe (8852)
Module Load: bcrypt.dll. No Debug Info. Base Address: $73E00000. Process azShop.exe (8852)
Module Load: SspiCli.dll. No Debug Info. Base Address: $73F10000. Process azShop.exe (8852)
Thread Start: Thread ID: 7564. Process azShop.exe (8852)
Module Load: CRYPTBASE.dll. No Debug Info. Base Address: $73F00000. Process azShop.exe (8852)
Module Load: bcryptPrimitives.dll. No Debug Info. Base Address: $76F60000. Process azShop.exe (8852)
Module Load: SECHOST.dll. No Debug Info. Base Address: $74650000. Process azShop.exe (8852)
Module Load: SHCORE.dll. No Debug Info. Base Address: $75510000. Process azShop.exe (8852)
Module Load: USER32.dll. No Debug Info. Base Address: $76C00000. Process azShop.exe (8852)
Module Load: win32u.dll. No Debug Info. Base Address: $76F10000. Process azShop.exe (8852)
Module Load: GDI32.dll. No Debug Info. Base Address: $743B0000. Process azShop.exe (8852)
Module Load: gdi32full.dll. No Debug Info. Base Address: $74250000. Process azShop.exe (8852)
Module Load: msvcp_win.dll. No Debug Info. Base Address: $743E0000. Process azShop.exe (8852)
Module Load: SHLWAPI.dll. No Debug Info. Base Address: $77090000. Process azShop.exe (8852)
Module Load: SHELL32.dll. No Debug Info. Base Address: $75610000. Process azShop.exe (8852)
Module Load: Windows.Storage.dll. No Debug Info. Base Address: $74D60000. Process azShop.exe (8852)
Module Load: COMCTL32.dll. No Debug Info. Base Address: $71EF0000. Process azShop.exe (8852)
Module Load: ADVAPI32.dll. No Debug Info. Base Address: $77460000. Process azShop.exe (8852)
Module Load: AppCore.dll. No Debug Info. Base Address: $76F30000. Process azShop.exe (8852)
Module Load: POWRPROF.dll. No Debug Info. Base Address: $76D80000. Process azShop.exe (8852)
Module Load: profapi.dll. No Debug Info. Base Address: $74C50000. Process azShop.exe (8852)
Module Load: OLEAUT32.dll. No Debug Info. Base Address: $770E0000. Process azShop.exe (8852)
Module Load: ole32.dll. No Debug Info. Base Address: $769B0000. Process azShop.exe (8852)
Module Load: VERSION.dll. No Debug Info. Base Address: $728F0000. Process azShop.exe (8852)
Module Load: NETAPI32.dll. No Debug Info. Base Address: $73790000. Process azShop.exe (8852)
Module Load: netutils.dll. No Debug Info. Base Address: $73770000. Process azShop.exe (8852)
Module Load: IMM32.dll. No Debug Info. Base Address: $76EE0000. Process azShop.exe (8852)
Module Load: MSCTF.dll. No Debug Info. Base Address: $74100000. Process azShop.exe (8852)
Module Load: UxTheme.dll. No Debug Info. Base Address: $71DA0000. Process azShop.exe (8852)
Module Load: dwmapi.dll. No Debug Info. Base Address: $71E30000. Process azShop.exe (8852)
Module Load: WTSAPI32.dll. No Debug Info. Base Address: $73880000. Process azShop.exe (8852)
Module Load: WINSTA.dll. No Debug Info. Base Address: $73830000. Process azShop.exe (8852)
First chance exception at $006C7022. Exception class $C0000005 with message 'access violation at 0x006c7022: read of address 0x00000004'. Process azShop.exe (8852)

sagt das irgendwem was?

Was konn ich noch an hilfreichen Informationen liefern? (Bitte auch miteilen wie ich die erzeuge )

Danke schon mal für eure Hilfe
Temi
Miniaturansicht angehängter Grafiken
2018-04-04-17_27_30-azshop-delphi-10.2-ztokenizer-%5Bstopped-thread-4228%5D-%5Bbuilt%5D.png  
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.149 Beiträge
 
Delphi 12 Athens
 
#2

AW: Delphi 6 -> Delphi 10.2

  Alt 4. Apr 2018, 17:15
Erstmal solltest du mit dem Debugger schauen was los ist.

"access violation at 0x006c7022: read of address 0x00000004"

0x006c7022 ist die Stelle des Fehlers im code/Programm

Und bei 0x00000004 konnte nicht zugrgriffen werden, was auch klar ist, da die Adressen $00000000 bis $0000FFFF niemals existieren (außer in Treibern)

$00000004 = nil + Offset_ZBzurVariableOderPropertyInEinemObjekt



ACHTUNG: Die Fehlerzeile kann auch manchmal die Codezeile über der markierten Stelle sein.
Vor allem wenn man über den Stack-Trace sucht, denn da stehen die Rücksprungadressen drin, also de Befehl danach und auch der Debugger verrutscht manchmal ein bissl.

Meine Vermutung Current oder Children ist NIL.
Jetzt mußt du nur noch rausbekommen, warum das so ist. (dort suchen, wo es erstellt/zugewiesen wurde)
[edit] da Current auf NIL geprüft wird, wird es wohl das Children in der Zeile davor sein
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Delphi 6 -> Delphi 10.2

  Alt 4. Apr 2018, 21:18
Könnte auch totaler Quark sein den ich hier von mir gebe:
Hast Du eventuell als Ziel-Platform von 32 auf 64 bit gewechselt?
(Falls gefragt war was ein guter/übersichtlicher Debugger ist, ich kann den von HexRay's empfehlen.)
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

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

AW: Delphi 6 -> Delphi 10.2

  Alt 5. Apr 2018, 05:05
(Falls gefragt war was ein guter/übersichtlicher Debugger ist, ich kann den von HexRay's empfehlen.)
Viel sinnvoller ist doch der in Delphi integrierte, wenn man den wie hier zur Verfügung hat. Da kannst du schließlich auf Quelltextebene statt auf Assemblerebene debuggen soweit möglich, aber wenn nötig auch auf Assemblerebene weitermachen.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
HeZa

Registriert seit: 4. Nov 2004
Ort: Dortmund
182 Beiträge
 
Delphi 10 Seattle Professional
 
#5

AW: Delphi 6 -> Delphi 10.2

  Alt 5. Apr 2018, 07:18
Ich befrage mal die Glaskugel:

Die Exception passiert durch den Aufruf von Current := Children[i]; und zwar deswegen, weil es die erste Stelle in der Funktion ist, die auf eine Instanz-Daten deiner Klasse zugreift. Leider ist deine Instanz (vom Typ TZSymbolNode) nicht initzialisiert.

Suche also die Stelle wo deine Instanz erstellt werden sollte.

Erster Versuch: Wenn du im Debugger an der Stelle ankommst, gehe den Aufrufstack Schritt für Schritt hoch.

Zweiter Versuch: Suche nach Stelllen TZSymbolNode.Create . Vielleich findest du so was wie:

Delphi-Quellcode:
var
  node: TZSymbolNode;
begin
  if xxx then
    node: TZSymbolNode.Create;
    node.FindChildWithChar(); // hier ist node evtl. nicht Initzialisiert
end;
Dritter Versuch: Nimm FastMM zu Hilfe.
  Mit Zitat antworten Zitat
MichaelT

Registriert seit: 14. Sep 2005
Ort: 4020 Linz
532 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Delphi 6 -> Delphi 10.2

  Alt 5. Apr 2018, 13:27
Kurzschlussauswertung zieht nicht. Die Logik wirkt ein wenig kühn.

Meine Vermutung Current oder Children ist NIL.
Jetzt mußt du nur noch rausbekommen, warum das so ist. (dort suchen, wo es erstellt/zugewiesen wurde)
[edit] da Current auf NIL geprüft wird, wird es wohl das Children in der Zeile davor sein

Geändert von MichaelT ( 5. Apr 2018 um 13:31 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.149 Beiträge
 
Delphi 12 Athens
 
#7

AW: Delphi 6 -> Delphi 10.2

  Alt 5. Apr 2018, 13:40
Kurzschlussauswertung zieht nicht. Die Logik wirkt ein wenig kühn.
Wieso?
Anhand der vorhandenen Informationen, passt das schon.

Mit mehr/genaueren Infos ... wer weiß.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Temi00

Registriert seit: 1. Aug 2004
9 Beiträge
 
#8

AW: Delphi 6 -> Delphi 10.2

  Alt 5. Apr 2018, 13:50
Hallo Forum,
nein als Zielplattform ist weiter 32bit eingestellt.

Ich habe ja in den Zeos sourcen überhaupt nichts geändert.

Kenne leider die Objectorientierte Programmierung nicht (Hab bisher meist PHP funktionale Programmierung - allerhöchstens objectbasiert aber nicht objectorientiert programmiert)

Delphi-Quellcode:
function TZSymbolNode.FindChildWithChar(Value: Char): TZSymbolNode;
var
  I: Integer;
  Current: TZSymbolNode;
begin
  Result := nil;
  for I := 0 to 255 do
  begin
    Current := Children[I]; <-------
    if (Current = nil) or (Current.Character = Value) then
    begin
      Result := Current;
      Break;
    end;
  end;
end;
Woher kommt den die Variable Children? Ist das eine globale Variable? Ich denke nicht muß wohl was wie Childs vom Objekt TZSymbolNode sein?
Ja laut Debugger sind da 256 member(?) von Children nil

Ich suche jetzt also wie vorgeschlagen nach

TZSymbolNode.Create

Delphi-Quellcode:

// also finde ich hier

constructor TZSymbolNode.Create(Parent: TZSymbolNode; Character: Char);
begin
  FParent := Parent;
  FCharacter := Character;
  FValid := False;
  SetLength(FChildren, 256);
end;

// und hier


constructor TZSymbolRootNode.Create;
var
  I: Integer;
begin
  inherited Create(nil, #0);

  for I := 0 to 255 do
  begin
    FChildren[I] := TZSymbolNode.Create(Self, Chr(I));
    FChildren[I].Valid := True;
  end;
end;
wenn man den Aufrufstack anschaut (siehe Anhang) kann man vieleicht das ganze verkürzen? den wie gesagt am Quellcode der Zeos Komponenten habe ich nichts geändert.

sorry für die blutigen Anfängerfragen.
Miniaturansicht angehängter Grafiken
2018-04-05-14_42_34-azshop-delphi-10.2-ztokenizer-%5Bstopped-thread-8704%5D-%5Bbuilt%5D.png  

Geändert von Temi00 ( 5. Apr 2018 um 13:54 Uhr) Grund: Anhang vergessen ;)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Delphi 6 -> Delphi 10.2

  Alt 5. Apr 2018, 15:50
Ist einstellbar

http://docwiki.embarcadero.com/RADSt...iler-Direktive)
Markus Kinzler
  Mit Zitat antworten Zitat
Temi00

Registriert seit: 1. Aug 2004
9 Beiträge
 
#10

AW: Delphi 6 -> Delphi 10.2

  Alt 5. Apr 2018, 15:52

In Delphi ist im Gegensatz zu Pascal die Kurzschlussauswertung allein am AND definiert und nicht am OR
ist zwar off topic aber IMHO muss man beim AND immer beide Ausdrücke auswerten beim OR kann auch wegoptimiert werden. Unwahrscheinlich dass das bei Pascal anders war. Just my 2 cents
  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 20:30 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