global serial
global startTime
global finalTime
global currentDepth


probe process(@1).function("*"){
	callFunction(probefunc())
}

probe process(@1).function("*").return{
	returnFunction(probefunc())
}


function callFunction(probefunc) {
	if (startTime == 0) {
		startTime = gettimeofday_ns()
		printf("<%s,,%d,,%d;\n", probefunc, serial, startTime)
	} else
	    printf("<%s,,%d,,%d;\n", probefunc, serial, gettimeofday_ns())
	currentDepth++
	serial++
}

function returnFunction(probefunc) {
	finalTime = gettimeofday_ns()
	printf(">%s,,%d;\n", probefunc, finalTime)
	currentDepth--
}


probe end {
	printf("-%d\n",finalTime);
	printf("+%d\n",finalTime - startTime);
    exit()
}
probe syscall.exit {
if (pid() == target()) {
finalTime = gettimeofday_ns()
}
}