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.…
==============================================================================
--- 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_arm6…
==============================================================================
--- 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.…
==============================================================================
--- 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_…
==============================================================================
--- 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.…
==============================================================================
--- 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_…
==============================================================================
--- 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?…
==============================================================================
--- 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_modu…
==============================================================================
--- 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_mo…
==============================================================================
--- 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?re…
==============================================================================
--- 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.…
==============================================================================
--- 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=…
==============================================================================
--- 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