[ASan] Print mmap errno/GetLastError in a readable and consistent way

Reviewed at http://llvm-reviews.chandlerc.com/D3107

llvm-svn: 204218
This commit is contained in:
Timur Iskhodzhanov 2014-03-19 08:23:00 +00:00
parent 17710217fa
commit 364b8b8fe5
2 changed files with 17 additions and 13 deletions

View File

@ -64,7 +64,8 @@ void *MmapOrDie(uptr size, const char *mem_type) {
Die();
}
recursion_count++;
Report("ERROR: %s failed to allocate 0x%zx (%zd) bytes of %s: %d\n",
Report("ERROR: %s failed to "
"allocate 0x%zx (%zd) bytes of %s (errno: %d)\n",
SanitizerToolName, size, size, mem_type, reserrno);
DumpProcessMap();
CHECK("unable to mmap" && 0);
@ -91,8 +92,8 @@ void *MmapNoReserveOrDie(uptr size, const char *mem_type) {
-1, 0);
int reserrno;
if (internal_iserror(p, &reserrno)) {
Report("ERROR: "
"%s failed to allocate noreserve 0x%zx (%zd) bytes for '%s' (%d)\n",
Report("ERROR: %s failed to "
"allocate noreserve 0x%zx (%zd) bytes for '%s' (errno: %d)\n",
SanitizerToolName, size, size, mem_type, reserrno);
CHECK("unable to mmap" && 0);
}
@ -108,8 +109,8 @@ void *MmapFixedNoReserve(uptr fixed_addr, uptr size) {
-1, 0);
int reserrno;
if (internal_iserror(p, &reserrno))
Report("ERROR: "
"%s failed to allocate 0x%zx (%zd) bytes at address %zu (%d)\n",
Report("ERROR: %s failed to "
"allocate 0x%zx (%zd) bytes at address %zu (errno: %d)\n",
SanitizerToolName, size, size, fixed_addr, reserrno);
return (void *)p;
}
@ -123,8 +124,8 @@ void *MmapFixedOrDie(uptr fixed_addr, uptr size) {
-1, 0);
int reserrno;
if (internal_iserror(p, &reserrno)) {
Report("ERROR:"
" %s failed to allocate 0x%zx (%zd) bytes at address %zu (%d)\n",
Report("ERROR: %s failed to "
"allocate 0x%zx (%zd) bytes at address %zu (errno: %d)\n",
SanitizerToolName, size, size, fixed_addr, reserrno);
CHECK("unable to mmap" && 0);
}

View File

@ -80,8 +80,9 @@ void GetThreadStackTopAndBottom(bool at_initialization, uptr *stack_top,
void *MmapOrDie(uptr size, const char *mem_type) {
void *rv = VirtualAlloc(0, size, MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE);
if (rv == 0) {
Report("ERROR: Failed to allocate 0x%zx (%zd) bytes of %s\n",
size, size, mem_type);
Report("ERROR: %s failed to "
"allocate 0x%zx (%zd) bytes of %s (error code: %d)\n",
SanitizerToolName, size, size, mem_type, GetLastError());
CHECK("unable to mmap" && 0);
}
return rv;
@ -89,8 +90,9 @@ void *MmapOrDie(uptr size, const char *mem_type) {
void UnmapOrDie(void *addr, uptr size) {
if (VirtualFree(addr, size, MEM_DECOMMIT) == 0) {
Report("ERROR: Failed to deallocate 0x%zx (%zd) bytes at address %p\n",
size, size, addr);
Report("ERROR: %s failed to "
"deallocate 0x%zx (%zd) bytes at address %p (error code: %d)\n",
SanitizerToolName, size, size, addr, GetLastError());
CHECK("unable to unmap" && 0);
}
}
@ -101,8 +103,9 @@ void *MmapFixedNoReserve(uptr fixed_addr, uptr size) {
void *p = VirtualAlloc((LPVOID)fixed_addr, size,
MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE);
if (p == 0)
Report("ERROR: Failed to allocate 0x%zx (%zd) bytes at %p (%d)\n",
size, size, fixed_addr, GetLastError());
Report("ERROR: %s failed to "
"allocate %p (%zd) bytes at %p (error code: %d)\n",
SanitizerToolName, size, size, fixed_addr, GetLastError());
return p;
}