Module: wine Branch: master Commit: adda48593311997454a97d5da8bdcc2f9d5b126a URL: http://source.winehq.org/git/wine.git/?a=commit;h=adda48593311997454a97d5da8...
Author: John Reiser jreiser@BitWagon.com Date: Thu Jul 24 10:21:33 2008 -0700
ntdll: Tell valgrind to load the .pdb debugging info for the module that was just loaded.
---
dlls/ntdll/virtual.c | 10 +++++++--- 1 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/dlls/ntdll/virtual.c b/dlls/ntdll/virtual.c index ef97eb2..78e38dc 100644 --- a/dlls/ntdll/virtual.c +++ b/dlls/ntdll/virtual.c @@ -41,8 +41,8 @@ #ifdef HAVE_SYS_MMAN_H # include <sys/mman.h> #endif -#ifdef HAVE_VALGRIND_MEMCHECK_H -# include <valgrind/memcheck.h> +#ifdef HAVE_VALGRIND_VALGRIND_H +# include <valgrind/valgrind.h> #endif
#define NONAMELESSUNION @@ -898,6 +898,7 @@ static NTSTATUS map_image( HANDLE hmapping, int fd, char *base, SIZE_T total_siz struct stat st; struct file_view *view = NULL; char *ptr, *header_end; + int delta = 0;
/* zero-map the whole range */
@@ -1088,7 +1089,6 @@ static NTSTATUS map_image( HANDLE hmapping, int fd, char *base, SIZE_T total_siz ((nt->FileHeader.Characteristics & IMAGE_FILE_DLL) || !NtCurrentTeb()->Peb->ImageBaseAddress) ) { - int delta = ptr - base; IMAGE_BASE_RELOCATION *rel, *end; const IMAGE_DATA_DIRECTORY *relocs;
@@ -1106,6 +1106,7 @@ static NTSTATUS map_image( HANDLE hmapping, int fd, char *base, SIZE_T total_siz relocs = &nt->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC]; rel = (IMAGE_BASE_RELOCATION *)(ptr + relocs->VirtualAddress); end = (IMAGE_BASE_RELOCATION *)(ptr + relocs->VirtualAddress + relocs->Size); + delta = ptr - base;
while (rel <= end - 1 && rel->SizeOfBlock) { @@ -1154,6 +1155,9 @@ static NTSTATUS map_image( HANDLE hmapping, int fd, char *base, SIZE_T total_siz server_leave_uninterrupted_section( &csVirtual, &sigset );
*addr_ptr = ptr; +#ifdef VALGRIND_LOAD_PDB_DEBUGINFO + VALGRIND_LOAD_PDB_DEBUGINFO(fd, ptr, total_size, delta); +#endif return STATUS_SUCCESS;
error: