What Is an eAccess Violation?
If your computer registers an "EAccessViolation" error, it means that a program failed to read or write to system RAM. EAccessViolation errors don't pop every time there's a memory error: they show up after repeated errors and imply a major error in the program code. However, the errors aren't always in the code. EAccessViolation errors can be difficult to isolate unless you're a programmer working on the program in question because a combination of programming mistakes, driver problems and bad RAM cause the errors.
EAccessViolation Errors Are Memory Errors
The operating system trips EAccessViolations when a program tries to access invalid memory. Computers need to efficiently manage system memory to keep different programs from overwriting the same storage and crashing each other. EAccessViolations are a type of "access violation," which is a memory error classification for when a programs tries to access memory that hasn't been allocated, is allocated to another program or is restricted. In order for a program to use memory, the memory needs to be allocated. Programs can recall and access data stored in the memory with the memory address; EAccessViolations typically occur when the program requests data at a faulty address. Data corruption and hardware errors can render the data unreadable and produce EAccessViolation errors as well.
Programming Error Access Violations
Unless you're a programmer, the best you can do to work around program-related EAccessViolations involves updating your programs to the most recent versions. Some programming behaviors can trip the error because the computer interprets them as malicious code. EAccessViolation programming errors can be very specific and limited in scope. For example, IBM reported an example EaccessViolation in the Rational Portfolio Manager when filling out finish dates with the region set to Chinese.
Bad Driver Access Violations
Driver errors can cause EAccessViolations. Drivers are a type of program that allow the operating system to use peripheral hardware like graphics cards, Ethernet adapters and sound cards. You can troubleshoot driver-related problems by updating drivers to the most recent versions. Unlike programming errors that isolate the errors to only specific programs, driver errors can plague a system any time a program uses the hardware in question.
RAM Hardware Failure
Frequent EAccessViolations can be an indication of a larger system problem: RAM hardware failure. EAccessViolations occur when a program addresses invalid memory; if the information isn't being stored correctly, the program will pull back invalid memory even if the read and write commands are correct. You can identify RAM failure with the built-in Windows Memory Diagnostic program or by running a third-party program like MemTest86.
References & Resources
- Microsoft Developer Network: AccessViolationException Class
- Microsoft Technet: Access Violation? How Dare You...
- FreePascal: EAccessViolation
- IBM Support: PK28586: EAccessViolation in Resources Porlet when Filling the Actual Finish Date for a Task
- PC Magazine Encyclopedia: Definition of: Driver
- Microsoft Windows: Diagnosing Memory Problems on Your Computer
- PassMark Software: MemTest86
- PassMarkSoftware: MemTest86