#!/bin/sh

dump_memory_map() {
	DATE="$(date +%Y%m%d-%H%M%S)"
	while [ -n "$1" ] ; do
		PIDS="$(pidof $1)"
		if [ -z "${PIDS}" ] ; then
			echo "Error, no process running: $1"
		else
			for pid in ${PIDS} ; do
				if [ -e "/proc/${pid}/maps" ] ; then
					MAPF="$1-${pid}-${DATE}.maps"
					cat "/proc/${pid}/maps" > "${MAPF}"
					echo "Written maps file: ${MAPF}"
				fi
			done
		fi
		shift 1
	done
}

DELAY=$1
shift 1
if [ -z "${DELAY}" ] ; then
	echo "Error, usage: $0 check-delay process-names ..." 1>&2
	exit 1
fi

while true ; do
	dump_memory_map "$@"
	sleep ${DELAY}
done
