Autor Téma: (TIBC)Query.Open -> AV  (Přečteno 345 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 7384
  • Karma: 44
    • Verze Delphi: W11 + D11.3.1
(TIBC)Query.Open -> AV
« kdy: 07-02-2023, 13:46:10 »

Citace
Project JasotSVB.exe raised exception class $C0000005 with message 'access violation at 0x0164fee3: read of address 0x1ffffffb'.
Kódu som sa nedotkol. Query vytváram dynamicky. Predtým 18 x zbehne funkcia QryOpen. Táto funkcia kontroluje:
  • či je Qry nil
  • Qry.SQL.Text
  • priraďuje transakciu
Vypol som PC. Nič. Neviem čoho sa chytiť.
Win11 64b, Delphi 11.3.1, FireBird 4.01
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 7384
  • Karma: 44
    • Verze Delphi: W11 + D11.3.1
Re:(TIBC)Query.Open -> AV
« Odpověď #1 kdy: 07-02-2023, 15:25:35 »
Hm, správa sa to viac než divne. Až začínam mať podozrenie na prekladač :-\
Nejako som sa dostal k tomu, že to Query otvorilo. Táto chyba sa začala ukazovať na iných miestach. Všetko som postupne odkrokoval. Opäť som sa dostal do situácie, že nemôžem otvoriť iné Query.
Žiaľ, nevidím možnosť ďalšieho krokovania.

Ak to obídem, tak pri zatvorení programu dostávam memory leak zo SuperObject-u.
« Poslední změna: 07-02-2023, 15:39:14 od Stanislav Hruška »
Win11 64b, Delphi 11.3.1, FireBird 4.01
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 7384
  • Karma: 44
    • Verze Delphi: W11 + D11.3.1
Re:(TIBC)Query.Open -> AV
« Odpověď #2 kdy: 07-02-2023, 16:47:28 »
Zdá sa, že som sa toho zbavil.
  • Query som vytváral v Object.Create
  • teraz ho vytváram až v mieste použitia
  • po použití ho hneď zničím
Stretol sa niekto s niečím podobným. Rád by som vedel, kde hľadať zradu.
Win11 64b, Delphi 11.3.1, FireBird 4.01
Expert na kladenie nejasne formulovaných otázok.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 3526
  • Karma: 139
    • Verze Delphi: D2007, XE3, DX10
Re:(TIBC)Query.Open -> AV
« Odpověď #3 kdy: 07-02-2023, 17:21:52 »
Stretol sa niekto s niečím podobným. Rád by som vedel, kde hľadať zradu.
IMHO klasika: neporadek v zivotnim cyklu objektu a dereference pointeru na neexistujici objekt. I kdyz jsi do kodu nesahal, tak staci zmena Delphi nebo nejake knihovny, tim dojde k posunum v prelozenem kodu a tim ten neplatny pointer ukazuje trochu nekam jinam a cele se muze chovat naprosto jinak nez dosud (mel jsi tam chybu, navenek se neprojevovala -> bylo to obdobi chybove latence)

Nema smysl trasovat kod, je treba revidovat zivotni cykly objektu, coz jsi nakonec zrejme udelal.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 7384
  • Karma: 44
    • Verze Delphi: W11 + D11.3.1
Re:(TIBC)Query.Open -> AV
« Odpověď #4 kdy: 07-02-2023, 17:58:55 »
Na to som myslel a kontroloval. Nič som nenašiel. To neznamená, že to tam nemohlo byť. Aj keď silne pochybujem.
Vyzerá to, ako jediné rozumné vysvetlenie.
Ďakujem.
Win11 64b, Delphi 11.3.1, FireBird 4.01
Expert na kladenie nejasne formulovaných otázok.