AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Fehler "access violation" - keine Ahnung, warum...
Thema durchsuchen
Ansicht
Themen-Optionen

Fehler "access violation" - keine Ahnung, warum...

Ein Thema von Pow3rus3r · begonnen am 14. Aug 2012 · letzter Beitrag vom 16. Aug 2012
 
Pow3rus3r

Registriert seit: 17. Apr 2012
43 Beiträge
 
Delphi XE Professional
 
#14

AW: Fehler "access violation" - keine Ahnung, warum...

  Alt 14. Aug 2012, 13:07
Geh mal in die Projektoptionen und aktiviere dort die Bereichsprüfung und eventuell noch die Debug-DCUs.
Das bringt mir dann folgende Meldung im Debugger:
Code:
   LOCK DEC    [EDX-skew].StrRec.refCnt       { threadsafe dec refCount      }
Und diese Meldung befindet sich in dieser Prozedur:
Code:
procedure _UStrArrayClr(var StrArray; Count: Integer);
{$IF not defined(CPU386)}
var
  P: Pointer;
begin
  P := @StrArray;
  while Count > 0 do
  begin
    _UStrClr(P^);
    Dec(Count);
    Inc(NativeInt(P), SizeOf(Pointer));
  end;
end;
{$ELSE}
asm
        { ->   EAX pointer to str     }
        {       EDX cnt                }

        {$IFDEF ALIGN_STACK}
        SUB    ESP,4
        {$ENDIF ALIGN_STACK}
        PUSH   EBX
        PUSH   ESI
        MOV    EBX,EAX
        MOV    ESI,EDX

@@loop:
        MOV    EDX,[EBX]                      { fetch str                    }
        TEST   EDX,EDX                        { if nil, nothing to do        }
        JE     @@doneEntry
        MOV    dword ptr [EBX],0               { clear str                    }
        MOV    ECX,[EDX-skew].StrRec.refCnt   { fetch refCnt                 }
        DEC    ECX                            { if < 0: literal str          }
        JL     @@doneEntry
   LOCK DEC    [EDX-skew].StrRec.refCnt       { threadsafe dec refCount      }
        JNE    @@doneEntry
        LEA    EAX,[EDX-skew]                 { if refCnt now zero, deallocate}
        CALL   _FreeMem
@@doneEntry:
        ADD    EBX,4
        DEC    ESI
        JNE    @@loop

        POP    ESI
        POP    EBX
        {$IFDEF ALIGN_STACK}
        ADD    ESP,4
        {$ENDIF ALIGN_STACK}
end;
{$IFEND}
Das sind für mich allerdings alle böhmische Dörfer
  Mit Zitat antworten Zitat
 


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