diff -r 26e766e0c628 tools/libxc/xc_dom_core.c --- a/tools/libxc/xc_dom_core.c Mon Nov 26 22:28:48 2007 +0000 +++ b/tools/libxc/xc_dom_core.c Thu Nov 29 11:56:01 2007 +0100 @@ -352,15 +352,19 @@ void *xc_dom_pfn_to_ptr(struct xc_dom_im } else { + int err; + mode = "anonymous memory"; phys->ptr = mmap(NULL, phys->count << page_shift, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0); if ( phys->ptr == MAP_FAILED ) { + err = errno; xc_dom_panic(XC_OUT_OF_MEMORY, - "%s: oom: can't allocate 0x%" PRIpfn " pages\n", - __FUNCTION__, count); + "%s: oom: can't allocate 0x%" PRIpfn " pages" + " [mmap, errno=%i (%s)]\n", + __FUNCTION__, count, err, strerror(err)); return NULL; } dom->alloc_mem_map += phys->count << page_shift;