Out-of-memory errors can either be actual lack of memory, or bugs (like code trying to call xmalloc(-1) by mistake). A little more information may help tracking bugs reported by users. Signed-off-by: Matthieu Moy <Matthieu.Moy@xxxxxxx> --- Junio C Hamano <gitster@xxxxxxxxx> writes: > Matthieu Moy <Matthieu.Moy@xxxxxxx> writes: > >> Out-of-memory errors can either be actual lack of memory, or bugs (like >> code trying to call xmalloc(-1) by mistake). A little more information >> may help tracking bugs reported by users. >> >> Signed-off-by: Matthieu Moy <Matthieu.Moy@xxxxxxx> >> --- >> This kind of thing may help for cases like >> >> Subject: Out of memory error during git push >> http://thread.gmane.org/gmane.comp.version-control.git/153988 > > Unless a single allocation try to grab unreasonably amount of memory, > probably a failure from a specific single failure may not help much. I don't promise miracle ;-). But at least, the diagnosis allows one to distinguish small allocations, huge ones, and silly errors like small negative numbers turned into unreasonably big ones. >> if (!ret) >> - die("Out of memory, malloc failed"); >> + die("Out of memory, malloc failed (tried to allocate %u bytes)", size); > > Perhaps use %lu format with cast to ulong? Will do. > alloc.c: fix formatting size_t to string > > Under NO_C99_FORMAT the format and the argument would not match if size_t > is not the same size as uint. As the one in sha1_file.c seems to be done > in a better way, let's use that one. Sounds good. Not sure why we don't basically use the %lu version everywhere though. wrapper.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/wrapper.c b/wrapper.c index afb4f6f..fd8ead3 100644 --- a/wrapper.c +++ b/wrapper.c @@ -40,7 +40,8 @@ void *xmalloc(size_t size) if (!ret && !size) ret = malloc(1); if (!ret) - die("Out of memory, malloc failed"); + die("Out of memory, malloc failed (tried to allocate %lu bytes)", + (unsigned long)size); } #ifdef XMALLOC_POISON memset(ret, 0xA5, size); -- 1.7.2.1.83.ge0227 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html