32 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
# Overview
 | 
						|
 | 
						|
The objective of the ovni project is to provide insight into what
 | 
						|
happened at execution of a program.
 | 
						|
 | 
						|

 | 
						|
 | 
						|
The key pieces of software involved are instrumented so they emit events
 | 
						|
during the execution which allow the reconstruction of the execution
 | 
						|
later on.
 | 
						|
 | 
						|
During the execution phase, the information gathered in the events is
 | 
						|
kept very short and simple, so the overhead is kept at minimum to avoid
 | 
						|
disturbing the execution process. Here is an example of a single event
 | 
						|
emitted during the execution phase, informing the current thread to
 | 
						|
finish the execution:
 | 
						|
 | 
						|
	00 4f 48 65 52 c0 27 b4 d3 ec 01 00
 | 
						|
 | 
						|
During the emulation phase, the events are read and processed in the
 | 
						|
emulator, reconstructing the execution. State transitions are recorded
 | 
						|
in a Paraver trace. Here is an example of the same thread ceasing the
 | 
						|
execution:
 | 
						|
 | 
						|
	2:0:1:1:1:50105669:1:0
 | 
						|
 | 
						|
Finally, loading the trace in the Paraver program, we can generate a
 | 
						|
timeline visualization of the state change. Here is the example for the
 | 
						|
same state transition of the thread stopping the execution:
 | 
						|
 | 
						|

 |