Author: akhaldi Date: Sat Apr 26 16:41:51 2014 New Revision: 62979
URL: http://svn.reactos.org/svn/reactos?rev=62979&view=rev Log: [DBGHELP] * Sync with Wine 1.7.17. CORE-8080
Modified: trunk/reactos/dll/win32/dbghelp/cpu_arm.c trunk/reactos/dll/win32/dbghelp/cpu_arm64.c trunk/reactos/dll/win32/dbghelp/cpu_i386.c trunk/reactos/dll/win32/dbghelp/cpu_ppc.c trunk/reactos/dll/win32/dbghelp/cpu_x86_64.c trunk/reactos/dll/win32/dbghelp/dbghelp.c trunk/reactos/dll/win32/dbghelp/dbghelp_private.h trunk/reactos/dll/win32/dbghelp/dwarf.c trunk/reactos/dll/win32/dbghelp/elf_module.c trunk/reactos/dll/win32/dbghelp/macho_module.c trunk/reactos/dll/win32/dbghelp/module.c trunk/reactos/dll/win32/dbghelp/msc.c trunk/reactos/dll/win32/dbghelp/storage.c trunk/reactos/dll/win32/dbghelp/symbol.c trunk/reactos/media/doc/README.WINE
Modified: trunk/reactos/dll/win32/dbghelp/cpu_arm.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/dbghelp/cpu_arm.c... ============================================================================== --- trunk/reactos/dll/win32/dbghelp/cpu_arm.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/dbghelp/cpu_arm.c [iso-8859-1] Sat Apr 26 16:41:51 2014 @@ -23,8 +23,8 @@
WINE_DEFAULT_DEBUG_CHANNEL(dbghelp);
-static unsigned arm_get_addr(HANDLE hThread, const CONTEXT* ctx, - enum cpu_addr ca, ADDRESS64* addr) +static BOOL arm_get_addr(HANDLE hThread, const CONTEXT* ctx, + enum cpu_addr ca, ADDRESS64* addr) { addr->Mode = AddrModeFlat; addr->Segment = 0; /* don't need segment */
Modified: trunk/reactos/dll/win32/dbghelp/cpu_arm64.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/dbghelp/cpu_arm64... ============================================================================== --- trunk/reactos/dll/win32/dbghelp/cpu_arm64.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/dbghelp/cpu_arm64.c [iso-8859-1] Sat Apr 26 16:41:51 2014 @@ -2,7 +2,7 @@ * File cpu_arm64.c * * Copyright (C) 2009 Eric Pouech - * Copyright (C) 2010-2013 Andrأ© Hentschel + * Copyright (C) 2010-2013 André Hentschel * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -23,8 +23,8 @@
WINE_DEFAULT_DEBUG_CHANNEL(dbghelp);
-static unsigned arm64_get_addr(HANDLE hThread, const CONTEXT* ctx, - enum cpu_addr ca, ADDRESS64* addr) +static BOOL arm64_get_addr(HANDLE hThread, const CONTEXT* ctx, + enum cpu_addr ca, ADDRESS64* addr) { addr->Mode = AddrModeFlat; addr->Segment = 0; /* don't need segment */
Modified: trunk/reactos/dll/win32/dbghelp/cpu_i386.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/dbghelp/cpu_i386.... ============================================================================== --- trunk/reactos/dll/win32/dbghelp/cpu_i386.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/dbghelp/cpu_i386.c [iso-8859-1] Sat Apr 26 16:41:51 2014 @@ -45,8 +45,8 @@ return -1; }
-static unsigned i386_build_addr(HANDLE hThread, const CONTEXT* ctx, ADDRESS64* addr, - unsigned seg, unsigned long offset) +static BOOL i386_build_addr(HANDLE hThread, const CONTEXT* ctx, ADDRESS64* addr, + unsigned seg, unsigned long offset) { addr->Mode = AddrModeFlat; addr->Segment = seg; @@ -71,8 +71,8 @@ #endif
#ifndef DBGHELP_STATIC_LIB -static unsigned i386_get_addr(HANDLE hThread, const CONTEXT* ctx, - enum cpu_addr ca, ADDRESS64* addr) +static BOOL i386_get_addr(HANDLE hThread, const CONTEXT* ctx, + enum cpu_addr ca, ADDRESS64* addr) { #ifdef __i386__ switch (ca)
Modified: trunk/reactos/dll/win32/dbghelp/cpu_ppc.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/dbghelp/cpu_ppc.c... ============================================================================== --- trunk/reactos/dll/win32/dbghelp/cpu_ppc.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/dbghelp/cpu_ppc.c [iso-8859-1] Sat Apr 26 16:41:51 2014 @@ -22,8 +22,8 @@
WINE_DEFAULT_DEBUG_CHANNEL(dbghelp);
-static unsigned ppc_get_addr(HANDLE hThread, const CONTEXT* ctx, - enum cpu_addr ca, ADDRESS64* addr) +static BOOL ppc_get_addr(HANDLE hThread, const CONTEXT* ctx, + enum cpu_addr ca, ADDRESS64* addr) { switch (ca) {
Modified: trunk/reactos/dll/win32/dbghelp/cpu_x86_64.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/dbghelp/cpu_x86_6... ============================================================================== --- trunk/reactos/dll/win32/dbghelp/cpu_x86_64.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/dbghelp/cpu_x86_64.c [iso-8859-1] Sat Apr 26 16:41:51 2014 @@ -83,8 +83,8 @@ #define GetExceptionDataPtr(info) \ ((PVOID)((PULONG)GetLanguageSpecificData(info) + 1)
-static unsigned x86_64_get_addr(HANDLE hThread, const CONTEXT* ctx, - enum cpu_addr ca, ADDRESS64* addr) +static BOOL x86_64_get_addr(HANDLE hThread, const CONTEXT* ctx, + enum cpu_addr ca, ADDRESS64* addr) { addr->Mode = AddrModeFlat; switch (ca)
Modified: trunk/reactos/dll/win32/dbghelp/dbghelp.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/dbghelp/dbghelp.c... ============================================================================== --- trunk/reactos/dll/win32/dbghelp/dbghelp.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/dbghelp/dbghelp.c [iso-8859-1] Sat Apr 26 16:41:51 2014 @@ -60,25 +60,6 @@ */
unsigned dbghelp_options = SYMOPT_UNDNAME; -HANDLE hMsvcrt = NULL; - -/*********************************************************************** - * DllMain (DEBUGHLP.@) - */ -BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) -{ - switch (fdwReason) - { - case DLL_PROCESS_ATTACH: break; - case DLL_PROCESS_DETACH: - if (hMsvcrt) FreeLibrary(hMsvcrt); - break; - case DLL_THREAD_ATTACH: break; - case DLL_THREAD_DETACH: break; - default: break; - } - return TRUE; -}
static struct process* process_first /* = NULL */;
Modified: trunk/reactos/dll/win32/dbghelp/dbghelp_private.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/dbghelp/dbghelp_p... ============================================================================== --- trunk/reactos/dll/win32/dbghelp/dbghelp_private.h [iso-8859-1] (original) +++ trunk/reactos/dll/win32/dbghelp/dbghelp_private.h [iso-8859-1] Sat Apr 26 16:41:51 2014 @@ -569,7 +569,7 @@ DWORD frame_regno;
/* address manipulation */ - unsigned (*get_addr)(HANDLE hThread, const CONTEXT* ctx, + BOOL (*get_addr)(HANDLE hThread, const CONTEXT* ctx, enum cpu_addr, ADDRESS64* addr);
/* stack manipulation */ @@ -594,7 +594,6 @@
/* dbghelp.c */ extern struct process* process_find_by_handle(HANDLE hProcess) DECLSPEC_HIDDEN; -extern HANDLE hMsvcrt DECLSPEC_HIDDEN; extern BOOL validate_addr64(DWORD64 addr) DECLSPEC_HIDDEN; extern BOOL pcs_callback(const struct process* pcs, ULONG action, void* data) DECLSPEC_HIDDEN; extern void* fetch_buffer(struct process* pcs, unsigned size) DECLSPEC_HIDDEN;
Modified: trunk/reactos/dll/win32/dbghelp/dwarf.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/dbghelp/dwarf.c?r... ============================================================================== --- trunk/reactos/dll/win32/dbghelp/dwarf.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/dbghelp/dwarf.c [iso-8859-1] Sat Apr 26 16:41:51 2014 @@ -513,7 +513,7 @@ break;
case DW_FORM_ref8: - FIXME("Unhandled 64 bit support\n"); + FIXME("Unhandled 64-bit support\n"); break;
case DW_FORM_sdata: @@ -1408,6 +1408,9 @@
switch (child->abbrev->tag) { + case DW_TAG_array_type: + dwarf2_parse_array_type(ctx, di); + break; case DW_TAG_member: /* FIXME: should I follow the sibling stuff ?? */ dwarf2_parse_udt_member(ctx, child, (struct symt_udt*)di->symt); @@ -1678,7 +1681,10 @@
static void dwarf2_parse_subprogram_block(dwarf2_subprogram_t* subpgm, struct symt_block* parent_block, - dwarf2_debug_info_t* di); + dwarf2_debug_info_t* di); + +static struct symt* dwarf2_parse_subroutine_type(dwarf2_parse_context_t* ctx, + dwarf2_debug_info_t* di);
static void dwarf2_parse_inlined_subroutine(dwarf2_subprogram_t* subpgm, struct symt_block* parent_block, @@ -1768,6 +1774,12 @@ break; case DW_TAG_variable: dwarf2_parse_variable(subpgm, block, child); + break; + case DW_TAG_pointer_type: + dwarf2_parse_pointer_type(subpgm->ctx, di); + break; + case DW_TAG_subroutine_type: + dwarf2_parse_subroutine_type(subpgm->ctx, di); break; case DW_TAG_lexical_block: dwarf2_parse_subprogram_block(subpgm, block, child); @@ -1899,6 +1911,9 @@ break; case DW_TAG_inlined_subroutine: dwarf2_parse_inlined_subroutine(&subpgm, NULL, child); + break; + case DW_TAG_pointer_type: + dwarf2_parse_pointer_type(subpgm.ctx, di); break; case DW_TAG_subprogram: /* FIXME: likely a declaration (to be checked)
Modified: trunk/reactos/dll/win32/dbghelp/elf_module.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/dbghelp/elf_modul... ============================================================================== --- trunk/reactos/dll/win32/dbghelp/elf_module.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/dbghelp/elf_module.c [iso-8859-1] Sat Apr 26 16:41:51 2014 @@ -42,6 +42,32 @@ #ifndef NT_GNU_BUILD_ID #define NT_GNU_BUILD_ID 3 #endif + +#ifndef HAVE_STRUCT_R_DEBUG +struct r_debug +{ + int r_version; + struct link_map *r_map; + ElfW(Addr) r_brk; + enum + { + RT_CONSISTENT, + RT_ADD, + RT_DELETE + } r_state; + ElfW(Addr) r_ldbase; +}; +#endif /* HAVE_STRUCT_R_DEBUG */ + +#ifndef HAVE_STRUCT_LINK_MAP +struct link_map +{ + ElfW(Addr) l_addr; + char *l_name; + ElfW(Dyn) *l_ld; + struct link_map *l_next, *l_prev; +}; +#endif /* HAVE_STRUCT_LINK_MAP */
WINE_DEFAULT_DEBUG_CHANNEL(dbghelp);
@@ -1427,7 +1453,7 @@ { BOOL ret = FALSE; struct module* module; - static WCHAR S_libstdcPPW[] = {'l','i','b','s','t','d','c','+','+','\0'}; + static const WCHAR S_libstdcPPW[] = {'l','i','b','s','t','d','c','+','+','\0'};
if (filename == NULL || *filename == '\0') return FALSE; if ((module = module_is_already_loaded(pcs, filename))) @@ -1682,8 +1708,8 @@ /****************************************************************** * elf_synchronize_module_list * - * this functions rescans the debuggee module's list and synchronizes it with - * the one from 'pcs', ie: + * this function rescans the debuggee module's list and synchronizes it with + * the one from 'pcs', i.e.: * - if a module is in debuggee and not in pcs, it's loaded into pcs * - if a module is in pcs and not in debuggee, it's unloaded from pcs */
Modified: trunk/reactos/dll/win32/dbghelp/macho_module.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/dbghelp/macho_mod... ============================================================================== --- trunk/reactos/dll/win32/dbghelp/macho_module.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/dbghelp/macho_module.c [iso-8859-1] Sat Apr 26 16:41:51 2014 @@ -420,17 +420,32 @@ RtlInitializeBitMap(&fmap->sect_is_code, fmap->sect_is_code_buff, MAX_SECT + 1);
len = WideCharToMultiByte(CP_UNIXCP, 0, filenameW, -1, NULL, 0, NULL, NULL); - if (!(filename = HeapAlloc(GetProcessHeap(), 0, len))) return FALSE; + if (!(filename = HeapAlloc(GetProcessHeap(), 0, len))) + { + WARN("failed to allocate filename buffer\n"); + return FALSE; + } WideCharToMultiByte(CP_UNIXCP, 0, filenameW, -1, filename, len, NULL, NULL);
/* check that the file exists */ - if (stat(filename, &statbuf) == -1 || S_ISDIR(statbuf.st_mode)) goto done; + if (stat(filename, &statbuf) == -1 || S_ISDIR(statbuf.st_mode)) + { + TRACE("stat() failed or %s is directory: %s\n", debugstr_a(filename), strerror(errno)); + goto done; + }
/* Now open the file, so that we can mmap() it. */ - if ((fmap->fd = open(filename, O_RDONLY)) == -1) goto done; + if ((fmap->fd = open(filename, O_RDONLY)) == -1) + { + TRACE("failed to open file %s: %d\n", debugstr_a(filename), errno); + goto done; + }
if (read(fmap->fd, &fat_header, sizeof(fat_header)) != sizeof(fat_header)) + { + TRACE("failed to read fat header: %d\n", errno); goto done; + } TRACE("... got possible fat header\n");
/* Fat header is always in big-endian order. */ @@ -936,23 +951,52 @@ */ if (macho_info->flags & MACHO_INFO_DEBUG_HEADER) { - static void* dyld_all_image_infos_addr; - - /* This symbol should be in the same place in all processes. */ - if (!dyld_all_image_infos_addr) - { - struct nlist nl[2]; - memset(nl, 0, sizeof(nl)); - nl[0].n_un.n_name = (char*)"_dyld_all_image_infos"; - if (!nlist("/usr/lib/dyld", nl)) - dyld_all_image_infos_addr = (void*)nl[0].n_value; - } - - if (dyld_all_image_infos_addr) - macho_info->dbg_hdr_addr = (unsigned long)dyld_all_image_infos_addr; - else - ret = FALSE; - TRACE("dbg_hdr_addr = 0x%08lx\n", macho_info->dbg_hdr_addr); + PROCESS_BASIC_INFORMATION pbi; + NTSTATUS status; + + ret = FALSE; + + /* Get address of PEB */ + status = NtQueryInformationProcess(pcs->handle, ProcessBasicInformation, + &pbi, sizeof(pbi), NULL); + if (status == STATUS_SUCCESS) + { + ULONG dyld_image_info; + + /* Read dyld image info address from PEB */ + if (ReadProcessMemory(pcs->handle, &pbi.PebBaseAddress->Reserved, + &dyld_image_info, sizeof(dyld_image_info), NULL)) + { + TRACE("got dyld_image_info 0x%08x from PEB %p MacDyldImageInfo %p\n", + dyld_image_info, pbi.PebBaseAddress, &pbi.PebBaseAddress->Reserved); + macho_info->dbg_hdr_addr = dyld_image_info; + ret = TRUE; + } + } + + if (!ret) + { + static void* dyld_all_image_infos_addr; + + /* Our next best guess is that dyld was loaded at its base address + and we can find the dyld image infos address by looking up its symbol. */ + if (!dyld_all_image_infos_addr) + { + struct nlist nl[2]; + memset(nl, 0, sizeof(nl)); + nl[0].n_un.n_name = (char*)"_dyld_all_image_infos"; + if (!nlist("/usr/lib/dyld", nl)) + dyld_all_image_infos_addr = (void*)nl[0].n_value; + } + + if (dyld_all_image_infos_addr) + { + TRACE("got dyld_image_info %p from /usr/lib/dyld symbol table\n", + dyld_all_image_infos_addr); + macho_info->dbg_hdr_addr = (unsigned long)dyld_all_image_infos_addr; + ret = TRUE; + } + } }
if (macho_info->flags & MACHO_INFO_MODULE) @@ -1011,7 +1055,7 @@ * macho_load_file_from_path * Tries to load a Mach-O file from a set of paths (separated by ':') */ -static BOOL macho_load_file_from_path(HANDLE hProcess, +static BOOL macho_load_file_from_path(struct process* pcs, const WCHAR* filename, unsigned long load_addr, const char* path, @@ -1022,7 +1066,7 @@ WCHAR* pathW = NULL; unsigned len;
- TRACE("(%p, %s, 0x%08lx, %s, %p)\n", hProcess, debugstr_w(filename), load_addr, + TRACE("(%p/%p, %s, 0x%08lx, %s, %p)\n", pcs, pcs->handle, debugstr_w(filename), load_addr, debugstr_a(path), macho_info);
if (!path) return FALSE; @@ -1041,7 +1085,7 @@ strcpyW(fn, s); strcatW(fn, S_SlashW); strcatW(fn, filename); - ret = macho_load_file(hProcess, fn, load_addr, macho_info); + ret = macho_load_file(pcs, fn, load_addr, macho_info); HeapFree(GetProcessHeap(), 0, fn); if (ret) break; s = (t) ? (t+1) : NULL; @@ -1057,7 +1101,7 @@ * * Tries to load a Mach-O file from the dll path */ -static BOOL macho_load_file_from_dll_path(HANDLE hProcess, +static BOOL macho_load_file_from_dll_path(struct process* pcs, const WCHAR* filename, unsigned long load_addr, struct macho_info* macho_info) @@ -1066,7 +1110,7 @@ unsigned int index = 0; const char *path;
- TRACE("(%p, %s, 0x%08lx, %p)\n", hProcess, debugstr_w(filename), load_addr, + TRACE("(%p/%p, %s, 0x%08lx, %p)\n", pcs, pcs->handle, debugstr_w(filename), load_addr, macho_info);
while (!ret && (path = wine_dll_enum_load_path( index++ ))) @@ -1083,7 +1127,7 @@ MultiByteToWideChar(CP_UNIXCP, 0, path, -1, name, len); strcatW( name, S_SlashW ); strcatW( name, filename ); - ret = macho_load_file(hProcess, name, load_addr, macho_info); + ret = macho_load_file(pcs, name, load_addr, macho_info); HeapFree( GetProcessHeap(), 0, name ); } TRACE(" => %d\n", ret); @@ -1101,7 +1145,7 @@ { BOOL ret = FALSE; struct module* module; - static WCHAR S_libstdcPPW[] = {'l','i','b','s','t','d','c','+','+','\0'}; + static const WCHAR S_libstdcPPW[] = {'l','i','b','s','t','d','c','+','+','\0'}; const WCHAR* p;
TRACE("(%p/%p, %s, 0x%08lx, %p)\n", pcs, pcs->handle, debugstr_w(filename), load_addr,
Modified: trunk/reactos/dll/win32/dbghelp/module.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/dbghelp/module.c?... ============================================================================== --- trunk/reactos/dll/win32/dbghelp/module.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/dbghelp/module.c [iso-8859-1] Sat Apr 26 16:41:51 2014 @@ -22,6 +22,8 @@ #include "dbghelp_private.h"
WINE_DEFAULT_DEBUG_CHANNEL(dbghelp); + +#define DLLPREFIX ""
const WCHAR S_ElfW[] = {'<','e','l','f','>','\0'}; const WCHAR S_WineLoaderW[] = {'<','w','i','n','e','-','l','o','a','d','e','r','>','\0'}; @@ -47,7 +49,7 @@ for (e = ext; *e; e++) { l = strlenW(*e); - if (l >= len) return FALSE; + if (l >= len) return 0; if (strncmpiW(&ptr[len - l], *e, l)) continue; return l; } @@ -96,7 +98,7 @@
const WCHAR *get_wine_loader_name(void) { - static const int is_win64 = sizeof(void *) > sizeof(int); /* FIXME: should depend on target process */ + static const BOOL is_win64 = sizeof(void *) > sizeof(int); /* FIXME: should depend on target process */ static const WCHAR wineW[] = {'w','i','n','e',0}; static const WCHAR suffixW[] = {'6','4',0}; static const WCHAR *loader; @@ -420,6 +422,16 @@ size_t len; struct module* module; PCWSTR filename, modname; + static WCHAR* dll_prefix; + static int dll_prefix_len; + + if (!dll_prefix) + { + dll_prefix_len = MultiByteToWideChar( CP_UNIXCP, 0, DLLPREFIX, -1, NULL, 0 ); + dll_prefix = HeapAlloc( GetProcessHeap(), 0, dll_prefix_len * sizeof(WCHAR) ); + MultiByteToWideChar( CP_UNIXCP, 0, DLLPREFIX, -1, dll_prefix, dll_prefix_len ); + dll_prefix_len--; + }
if (!base) return FALSE; filename = get_filename(ImageName, NULL); @@ -432,6 +444,7 @@ base < module->module.BaseOfImage + module->module.ImageSize) { modname = get_filename(module->module.LoadedImageName, NULL); + if (dll_prefix_len && !strncmpW( modname, dll_prefix, dll_prefix_len )) modname += dll_prefix_len; if (!strncmpiW(modname, filename, len) && !memcmp(modname + len, S_DotSoW, 3 * sizeof(WCHAR))) {
Modified: trunk/reactos/dll/win32/dbghelp/msc.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/dbghelp/msc.c?rev... ============================================================================== --- trunk/reactos/dll/win32/dbghelp/msc.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/dbghelp/msc.c [iso-8859-1] Sat Apr 26 16:41:51 2014 @@ -631,9 +631,9 @@ return &symt_new_array(ctp->module, 0, -arr_len, elem, index)->symt; }
-static int codeview_add_type_enum_field_list(struct module* module, - struct symt_enum* symt, - const union codeview_reftype* ref_type) +static BOOL codeview_add_type_enum_field_list(struct module* module, + struct symt_enum* symt, + const union codeview_reftype* ref_type) { const unsigned char* ptr = ref_type->fieldlist.list; const unsigned char* last = (const BYTE*)ref_type + ref_type->generic.len + 2; @@ -1307,12 +1307,12 @@ default: FIXME("Unsupported type-id leaf %x\n", type->generic.id); dump(type, 2 + type->generic.len); - return FALSE; + return NULL; } return codeview_add_type(curr_type, symt) ? symt : NULL; }
-static int codeview_parse_type_table(struct codeview_type_parse* ctp) +static BOOL codeview_parse_type_table(struct codeview_type_parse* ctp) { unsigned int curr_type = FIRST_DEFINABLE_TYPE; const union codeview_type* type; @@ -1537,8 +1537,8 @@ } }
-static int codeview_snarf(const struct msc_debug_info* msc_dbg, const BYTE* root, - int offset, int size, BOOL do_globals) +static BOOL codeview_snarf(const struct msc_debug_info* msc_dbg, const BYTE* root, + int offset, int size, BOOL do_globals) { struct symt_function* curr_func = NULL; int i, length; @@ -1984,8 +1984,8 @@ return TRUE; }
-static int codeview_snarf_public(const struct msc_debug_info* msc_dbg, const BYTE* root, - int offset, int size) +static BOOL codeview_snarf_public(const struct msc_debug_info* msc_dbg, const BYTE* root, + int offset, int size)
{ int i, length; @@ -2619,7 +2619,7 @@ while (imp < (const PDB_SYMBOL_IMPORT*)last) { ptr = (const char*)imp + sizeof(*imp) + strlen(imp->filename); - if (i >= CV_MAX_MODULES) FIXME("Out of bounds !!!\n"); + if (i >= CV_MAX_MODULES) FIXME("Out of bounds!!!\n"); if (!strcasecmp(pdb_lookup->filename, imp->filename)) { if (module_index != -1) FIXME("Twice the entry\n"); @@ -2652,7 +2652,7 @@ pdb_module_info->used_subfiles = 1; } cv_current_module = &cv_zmodules[module_index]; - if (cv_current_module->allowed) FIXME("Already allowed ??\n"); + if (cv_current_module->allowed) FIXME("Already allowed??\n"); cv_current_module->allowed = TRUE; }
@@ -3235,7 +3235,7 @@ ctp.table = (const BYTE*)(ctp.offset + types->cTypes);
cv_current_module = &cv_zmodules[0]; - if (cv_current_module->allowed) FIXME("Already allowed ??\n"); + if (cv_current_module->allowed) FIXME("Already allowed??\n"); cv_current_module->allowed = TRUE;
codeview_parse_type_table(&ctp);
Modified: trunk/reactos/dll/win32/dbghelp/storage.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/dbghelp/storage.c... ============================================================================== --- trunk/reactos/dll/win32/dbghelp/storage.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/dbghelp/storage.c [iso-8859-1] Sat Apr 26 16:41:51 2014 @@ -282,7 +282,7 @@ pk2i = sparse_array_lookup(sa, key, &idx); if (pk2i && pk2i->key == key) { - FIXME("re adding an existing key\n"); + FIXME("re-adding an existing key\n"); return NULL; } to = vector_add(&sa->key2index, pool); @@ -353,13 +353,13 @@ variance = (double)sq / ht->num_buckets - mean * mean; FIXME("STATS: elts[num:%-4u size:%u mean:%f] buckets[min:%-4u variance:%+f max:%-4u]\n", ht->num_elts, ht->num_buckets, mean, min, variance, max); -#if 1 + for (i = 0; i < ht->num_buckets; i++) { for (len = 0, elt = ht->buckets[i]; elt; elt = elt->next) len++; if (len == max) { - FIXME("Longuest bucket:\n"); + FIXME("Longest bucket:\n"); for (elt = ht->buckets[i]; elt; elt = elt->next) FIXME("\t%s\n", elt->name); break; @@ -367,7 +367,6 @@
} #endif -#endif }
void hash_table_add(struct hash_table* ht, struct hash_table_elt* elt)
Modified: trunk/reactos/dll/win32/dbghelp/symbol.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/dbghelp/symbol.c?... ============================================================================== --- trunk/reactos/dll/win32/dbghelp/symbol.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/dbghelp/symbol.c [iso-8859-1] Sat Apr 26 16:41:51 2014 @@ -24,7 +24,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(dbghelp); WINE_DECLARE_DEBUG_CHANNEL(dbghelp_symt);
-static WCHAR starW[] = {'*','\0'}; +static const WCHAR starW[] = {'*','\0'};
static inline int cmp_addr(ULONG64 a1, ULONG64 a2) { @@ -1236,7 +1236,8 @@ if ((sym = symt_find_nearest(pair.effective, Address)) == NULL) return FALSE;
symt_fill_sym_info(&pair, NULL, &sym->symt, Symbol); - *Displacement = Address - Symbol->Address; + if (Displacement) + *Displacement = Address - Symbol->Address; return TRUE; }
@@ -1766,6 +1767,7 @@ DWORD UndecoratedLength, DWORD Flags) { /* undocumented from msvcrt */ + static HANDLE hMsvcrt; static char* (CDECL *p_undname)(char*, const char*, int, void* (CDECL*)(size_t), void (CDECL*)(void*), unsigned short); static const WCHAR szMsvcrt[] = {'m','s','v','c','r','t','.','d','l','l',0};
Modified: trunk/reactos/media/doc/README.WINE URL: http://svn.reactos.org/svn/reactos/trunk/reactos/media/doc/README.WINE?rev=6... ============================================================================== --- trunk/reactos/media/doc/README.WINE [iso-8859-1] (original) +++ trunk/reactos/media/doc/README.WINE [iso-8859-1] Sat Apr 26 16:41:51 2014 @@ -69,7 +69,7 @@ reactos/dll/win32/cryptdll # Synced to Wine-1.7.1 reactos/dll/win32/cryptnet # Synced to Wine-1.7.17 reactos/dll/win32/cryptui # Synced to Wine-1.7.1 -reactos/dll/win32/dbghelp # Synced to Wine-1.7.1 +reactos/dll/win32/dbghelp # Synced to Wine-1.7.17 reactos/dll/win32/dciman32 # Synced to Wine-1.7.1 reactos/dll/win32/dwmapi # Synced to Wine-1.7.17 reactos/dll/win32/faultrep # Synced to Wine-1.7.1