1. Behavior investigation of concurrent Java programs: an approach based on source-code instrumentation
- Author
-
Cosimo Antonio Prete and Alessio Bechini
- Subjects
Source code ,Java ,Computer Networks and Communications ,Computer science ,media_common.quotation_subject ,Distributed computing ,Thread (computing) ,Tracing ,Concurrency control ,Software portability ,Real time Java ,Dynamic analysis ,Instrumentation (computer programming) ,Instrumentation techniques ,media_common ,computer.programming_language ,Profiling (computer programming) ,Distributed Computing Environment ,Program profiling ,strictfp ,Java concurrency ,Concurrent object-oriented programming ,Debugging ,Hardware and Architecture ,computer ,Java annotation ,Software - Abstract
Java makes easier the coding phase of concurrent applications and provides friendly mechanisms for the information exchange among threads and different processes. The nature of communication and synchronization mechanisms and the actual parallelism of a distributed environment introduce potential sources of non-deterministic behavior in concurrent applications. In order to investigate on undesired effects related to non-deterministic behaviors, tracing and replay capabilities can be added to the programming environment. Such capabilities are useful for testing, debugging, monitoring, performance evaluation and program profiling purposes. This paper presents a solution for providing tracing and replay capabilities to a number of Java concurrent applications. Such a solution addresses portability and it is based on the automatic instrumentation of the original source code. Some transformation schemes have been applied to some classes in the standard Java packages in order to make easier and more efficient the automatic instrumentation task. It is shown how the object-oriented structure of Java can be exploited in a deep and efficient way both in the instrumentation and in the tracing and replay phases.
- Published
- 2001
- Full Text
- View/download PDF