PSnAP: accurate synthetic address streams through memory profiles