The monitoring of properties of complex software systems can provide the core functionality for detecting violations of such properties. However, the violations detection cannot be always sufficient for the preservation of the properties. Except for the detection, the explanations of the occurrence of a violation could play significant role for the preservation task. In particular, diagnosis can indicate the cause(s) of a violation. Thus, diagnostic information is necessary for preserving the properties due to the support that can provide for deciding on the appropriate countermeasure against a violation. In this paper, we describe a process for diagnosing runtime violations of properties that we have developed as part of a runtime monitoring framework. The process is based on a combination of abductive, temporal and evidential reasoning over violations of process properties expressed in Event Calculus.