Eric Pouech : dbghelp: Beef up SymRefreshModuleList.
Alexandre Julliard
julliard at winehq.org
Tue Nov 17 09:28:17 CST 2009
Module: wine
Branch: master
Commit: 68cc7d58757e0a2003350a1759c4970da712a8b0
URL: http://source.winehq.org/git/wine.git/?a=commit;h=68cc7d58757e0a2003350a1759c4970da712a8b0
Author: Eric Pouech <eric.pouech at orange.fr>
Date: Mon Nov 16 21:27:08 2009 +0100
dbghelp: Beef up SymRefreshModuleList.
---
dlls/dbghelp/module.c | 22 +++++++++++++++++-----
include/dbghelp.h | 1 +
2 files changed, 18 insertions(+), 5 deletions(-)
diff --git a/dlls/dbghelp/module.c b/dlls/dbghelp/module.c
index 7d2ad7f..a6778e7 100644
--- a/dlls/dbghelp/module.c
+++ b/dlls/dbghelp/module.c
@@ -455,6 +455,15 @@ enum module_type module_get_type_by_name(const WCHAR* name)
return DMT_PE;
}
+/******************************************************************
+ * refresh_module_list
+ */
+static BOOL refresh_module_list(struct process* pcs)
+{
+ /* force transparent ELF and Mach-O loading / unloading */
+ return elf_synchronize_module_list(pcs) || macho_synchronize_module_list(pcs);
+}
+
/***********************************************************************
* SymLoadModule (DBGHELP.@)
*/
@@ -536,9 +545,7 @@ DWORD64 WINAPI SymLoadModuleExW(HANDLE hProcess, HANDLE hFile, PCWSTR wImageNam
if (Flags & ~(SLMFLAG_VIRTUAL))
FIXME("Unsupported Flags %08x for %s\n", Flags, debugstr_w(wImageName));
- /* force transparent ELF and Mach-O loading / unloading */
- elf_synchronize_module_list(pcs);
- macho_synchronize_module_list(pcs);
+ refresh_module_list(pcs);
/* this is a Wine extension to the API just to redo the synchronisation */
if (!wImageName && !hFile) return 0;
@@ -1058,6 +1065,11 @@ void module_reset_debug_info(struct module* module)
*/
BOOL WINAPI SymRefreshModuleList(HANDLE hProcess)
{
- FIXME("(%p) stub\n", hProcess);
- return FALSE;
+ struct process* pcs;
+
+ TRACE("(%p)\n", hProcess);
+
+ if (!(pcs = process_find_by_handle(hProcess))) return FALSE;
+
+ return refresh_module_list(pcs);
}
diff --git a/include/dbghelp.h b/include/dbghelp.h
index 98695b2..34805f4 100644
--- a/include/dbghelp.h
+++ b/include/dbghelp.h
@@ -1461,6 +1461,7 @@ BOOL WINAPI SymGetSymPrevW(HANDLE, PIMAGEHLP_SYMBOLW);
DWORD WINAPI SymLoadModule(HANDLE, HANDLE, PCSTR, PCSTR, DWORD, DWORD);
BOOL WINAPI SymRegisterCallback(HANDLE, PSYMBOL_REGISTERED_CALLBACK, PVOID);
BOOL WINAPI SymRegisterFunctionEntryCallback(HANDLE, PSYMBOL_FUNCENTRY_CALLBACK, PVOID);
+BOOL WINAPI SymRefreshModuleList(HANDLE);
BOOL WINAPI SymUnDName(PIMAGEHLP_SYMBOL, PSTR, DWORD);
BOOL WINAPI SymUnloadModule(HANDLE, DWORD);
More information about the wine-cvs
mailing list