A method for detecting data access violations related to interleaved data accesses to a memory address by a plurality of user threads, comprising: obtaining current memory access information related to a current memory access to the memory address by a current user thread; characterized by the steps of determining if a cache includes a cache entry associated with the memory address; and if the cache includes the cache entry associated with the memory address then analyzing an access history stored in the cache entry and the current memory access information to detect if there is a violation of accessing the memory address, wherein the access history includes memory access information related to a plurality of memory accesses to the memory address; the memory access information related to a memory access of the plurality of memory accesses includes at least time information of the memory access, type of the memory access, an identifier of a user thread of the plurality of user threads performing the memory access, and the memory address; and wherein the analyzing further includes: determining if the access history includes a previous memory access information related to a previous memory access to the memory address by the current user thread; and if the memory access information includes the previous memory access information, then determining a detection interval lasting from a previous access time of the previous memory access until a current access time of the current memory access; wherein the data access violations are detected during said detection interval. obtaining current memory access information related to a current memory access to the memory address by a current user thread; characterized by the steps of determining if a cache includes a cache entry associated with the memory address; and if the cache includes the cache entry associated with the memory address then analyzing an access history stored in the cache entry and the current memory access information to detect if there is a violation of accessing the memory address, wherein the access history includes memory access information related to a plurality of memory accesses to the memory address; the memory access information related to a memory access of the plurality of memory accesses includes at least time information of the memory access, type of the memory access, an identifier of a user thread of the plurality of user threads performing the memory access, and the memory address; and wherein the analyzing further includes: determining if the access history includes a previous memory access information related to a previous memory access to the memory address by the current user thread; and if the memory access information includes the previous memory access information, then determining a detection interval lasting from a previous access time of the previous memory access until a current access time of the current memory access; wherein the data access violations are detected during said detection interval. determining if the access history includes a previous memory access information related to a previous memory access to the memory address by the current user thread; and if the memory access information includes the previous memory access information, then determining a detection interval lasting from a previous access time of the previous memory access until a current access time of the current memory access; wherein the data access violations are detected during said detection interval.