Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Was ist denn ein "Runtime error 218" ? (https://www.delphipraxis.net/142645-ist-denn-ein-runtime-error-218-a.html)

turboPASCAL 31. Okt 2009 20:23


Was ist denn ein "Runtime error 218" ?
 
Und Plong:

Zitat:

---------------------------
Error
---------------------------
Runtime error 218 at 014C0C21
---------------------------
OK
---------------------------
Huch, kenn ich ja überhaupt noch nicht. Nach den beseitigten 216nern endlich mal was neues zum ärgern. :mrgreen:
Aber was will mir Vischda mit dem Fehler sagen ?

lbccaleb 31. Okt 2009 20:26

Re: Was ist denn ein "Runtime error 218" ?
 
Zitat:

Zitat von turboPASCAL
Aber was will mir Vischda mit dem Fehler sagen ?

[Spaß]
"Schmeiß schon den Rechner aus dem Fenter, und kauf dir einen mit Windows 7"
:lol:
[/Spaß]

turboPASCAL 31. Okt 2009 20:34

Re: Was ist denn ein "Runtime error 218" ?
 
Haha.

Wenn du mir 'n Scheck schickst gern. :mrgreen:

himitsu 31. Okt 2009 20:49

Re: Was ist denn ein "Runtime error 218" ?
 
218 = rePrivInstruction = STATUS_PRIVILEGED_INSTRUCTION = EPrivilege

da wirst du wohl irgendwas falsch machen?

Zitat:

EPrivilege wird ausgelöst, wenn eine Anwendung versucht, eine Prozessoranweisung auszuführen, die in der gegenwärtigen Prozessor-Vorrangstufe nicht zulässig ist.

Laufzeitinformationen zu Exceptions werden in den von EExternal bereitgestellten Feldern gespeichert.

turboPASCAL 31. Okt 2009 21:53

Re: Was ist denn ein "Runtime error 218" ?
 
Zitat:

da wirst du wohl irgendwas falsch machen?
Ja, das ist sich hier die Frage.

Nehme ich in das Projekt die SysUtils auf ist alles in Butter.
Lass ich sie weg, knallt es (manch mal).

Diesem Fehler debugge ich schon seit vier Stunden hinter her.
Langsam werde ich :freak: .

Luckie 31. Okt 2009 22:01

Re: Was ist denn ein "Runtime error 218" ?
 
Eine privilegierte Instruktion ist zum Beispiel, wenn man versucht unter Windows NT auf Hardware direkt zu zugreifen. machst du eventuell etwas ähnliches?

turboPASCAL 31. Okt 2009 22:07

Re: Was ist denn ein "Runtime error 218" ?
 
Eigentlich nichts der gleichen.
Einfach einen INet-Stream per Bass.dll abspielen.

OldGrumpy 31. Okt 2009 22:14

Re: Was ist denn ein "Runtime error 218" ?
 
Passiert auch gerne als Folgefehler wenn der Stack zerschossen ist oder ähnliches. Dann wird irgendwo im Speicher Code ausgeführt der eigentlich gar kein Code ist sondern "irgendwas". Und da sind dann zufälligerweise auch mal Werte dabei die Opcodes entsprechen die halt in Ring3 nicht erlaubt sind. Z.B. Sperren von Interrupts. Mit klassischem Debugging kaum zu finden weil der Stack irgendwann kaputtgehen kann, der Crash dann aber an einer ganz anderen Stelle irgendwann viel später vollkommen unmotiviert erfolgen kann. Häufige Auslöser sind nicht initialisierte Pointer und Buffer Overflows.

sx2008 31. Okt 2009 22:17

Re: Was ist denn ein "Runtime error 218" ?
 
Zitat:

Zitat von turboPASCAL
Nehme ich in das Projekt die SysUtils auf ist alles in Butter.

SysUtils installiert einen globalen Exception-Handler (siehe procedure InitExceptions).
Ohne Exception-Handler haut es dir halt Runtime-Errors um die Ohren.
Stark verkürzt sieht das so aus:
Delphi-Quellcode:
unit SysUtils;
....
initialization
  ...
  InitExceptions;
...
finalization
...
  DoneExceptions;
end.
Wenn du nun verbuggten Code in irgendeinem Finalization-Abschnitt hast, kann es passieren,
dass dieser Code nach DoneExceptions ausgeführt wird - und dann gibt es auch Runtime Fehler
anstelle von Exceptions.

PS: EPrivilege ist kein Problem mit fehlenden Rechten.
Delphi ist gar nicht in der Lage privilegierte Befehle zu erzeugen.
Es bedeutet, dass das Programm irgendwo ins Nirwana gesprungen ist
und dort zufällig auf eine priv. X86-Anweisung gestosen ist
oder der Program Counter verweist auf eine ungültige Seite.

Neutral General 31. Okt 2009 23:12

Re: Was ist denn ein "Runtime error 218" ?
 
Zitat:

Zitat von sx2008
PS: EPrivilege ist kein Problem mit fehlenden Rechten.
Delphi ist gar nicht in der Lage privilegierte Befehle zu erzeugen.

Guck mal:

Delphi-Quellcode:
procedure PrivilegierterBefehl;
asm
  cli;
end;
:wink:


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:49 Uhr.
Seite 1 von 2  1 2      

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