9 #define WIN32_NO_STATUS 18 #define ok_ulonglong(expression, result) \ 20 ULONG64 _value = (expression); \ 21 ULONG64 _result = (result); \ 22 ok(_value == (result), "Wrong value for '%s', expected: " #result " (%s), got: %s\n", \ 23 #expression, wine_dbgstr_longlong(_result), wine_dbgstr_longlong(_value)); \ 53 #define init_sym(fInvadeProcess) init_sym_imp(fInvadeProcess, __FILE__, __LINE__) 55 #define INIT_PSYM(buff) do { \ 56 memset((buff), 0, sizeof((buff))); \ 57 ((PSYMBOL_INFO)(buff))->SizeOfStruct = sizeof(SYMBOL_INFO); \ 58 ((PSYMBOL_INFO)(buff))->MaxNameLen = MAX_SYM_NAME; \ 78 errmsg =
"fileinfo is NULL.\n";
85 errmsg =
"FindResource failed";
93 errmsg =
"SizeofResource failed";
101 errmsg =
"LoadResource failed";
109 errmsg =
"LockResource failed";
115 if (pResCopy ==
NULL)
117 errmsg =
"LocalAlloc failed";
134 if (pResCopy !=
NULL)
167 ok(
FALSE,
"Dbghelp.dll is not loaded!\n");
171 memset(&fileInfo, 0,
sizeof(fileInfo));
178 ok(
FALSE,
"GetModuleFileNameW for dbghelp.dll failed!\n");
183 trace(
" API-Version: %hu.%hu.%hu (%hu)\n",
184 v->MajorVersion,
v->MinorVersion,
v->Revision,
v->Reserved);
186 trace(
" Fileversion: %hu.%hu.%hu.%hu\n",
230 memset(&ModuleInfo, 0,
sizeof(ModuleInfo));
246 skip(
"dbghelp.dll too old or cannot enumerate symbols!\n");
278 Ret =
SymFromName(hProc,
"_FfsChkdsk@24", pSymbol);
296 Ret =
SymFromName(hProc,
"_FfsFormat@24", pSymbol);
397 skip(
"dbghelp.dll too old or cannot read this symbol!\n");
470 skip(
"dbghelp.dll too old or cannot enumerate symbols!\n");
507 ok(
FALSE,
"SymRegisterCallback64Proc: Too many calls.\n");
512 "ActionCode (idx %u) expected %u, got %u\n",
528 ctx.isANSI = testANSI;
542 skip(
"SymRegisterCallbackW64 not found in dbghelp.dll\n");
579 ok(0,
"Failed extracting files\n");
596 trace(
"Module loaded by SymLoadModule64\n");
619 trace(
"Module loaded by LoadLibraryA\n");
BOOL WINAPI SymCleanup(HANDLE hProcess)
DWORD WINAPI GetModuleFileNameW(HINSTANCE hModule, LPWSTR lpFilename, DWORD nSize)
FARPROC WINAPI DliFailHook(unsigned dliNotify, PDelayLoadInfo pdli)
#define CBA_DEFERRED_SYMBOL_LOAD_COMPLETE
static const WCHAR szDllName[]
static BOOL WINAPI SymRegisterCallbackW64_Stub(HANDLE hProcess, PSYMBOL_REGISTERED_CALLBACK64 CallbackFunction, ULONG64 UserContext)
DWORD WINAPI SymSetOptions(DWORD opts)
void create_compressed_files()
DWORD WINAPI GetLastError(VOID)
LPVOID WINAPI LockResource(HGLOBAL handle)
_In_ BOOL _In_ HANDLE hProcess
static BOOL CALLBACK SymRegisterCallback64Proc(HANDLE hProcess, ULONG ActionCode, ULONG64 CallbackData, ULONG64 UserContext)
static void test_SymFromName(HANDLE hProc, DWORD64 BaseAddress)
BOOL get_module_version(_In_ HMODULE mod, _Out_ VS_FIXEDFILEINFO *fileinfo)
static void test_SymRegCallback(HANDLE hProc, const char *szModuleName, BOOL testANSI)
FARPROC(WINAPI * PfnDliHook)(unsigned, PDelayLoadInfo)
#define ok_hex(expression, result)
_In_ PCALLBACK_FUNCTION CallbackFunction
static const WCHAR filenameW[]
struct _SYMBOL_INFO * PSYMBOL_INFO
static VS_FIXEDFILEINFO dbghelpFileVer
HINSTANCE WINAPI DECLSPEC_HOTPATCH LoadLibraryA(LPCSTR lpLibFileName)
BOOL WINAPI FreeResource(HGLOBAL handle)
HGLOBAL WINAPI LoadResource(HINSTANCE hModule, HRSRC hRsrc)
BOOL WINAPI SymInitialize(HANDLE hProcess, PCSTR UserSearchPath, BOOL fInvadeProcess)
#define ok_int(expression, result)
EXPORT int errmsg(char *msg, va_alist)
struct _symregcallback_context symregcallback_context
struct _test_context test_context
DWORD64 WINAPI SymLoadModule64(HANDLE hProcess, HANDLE hFile, PCSTR ImageName, PCSTR ModuleName, DWORD64 BaseOfDll, DWORD SizeOfDll)
static BOOL init_sym_imp(BOOL fInvadeProcess, const char *file, int line)
_In_ HANDLE _Outptr_result_bytebuffer_ ViewSize PVOID * BaseAddress
_In_ PWDFDEVICE_INIT _In_ PWDF_REMOVE_LOCK_OPTIONS Options
struct _SYMBOL_INFO SYMBOL_INFO
BOOL WINAPI SetCurrentDirectoryA(IN LPCSTR lpPathName)
#define GetCurrentProcess()
BOOL WINAPI SymFromAddr(HANDLE hProcess, DWORD64 Address, DWORD64 *Displacement, PSYMBOL_INFO Symbol)
BOOL WINAPI SymRegisterCallback64(HANDLE hProcess, PSYMBOL_REGISTERED_CALLBACK64 CallbackFunction, ULONG64 UserContext)
static int g_SymRegisterCallbackW64NotFound
int extract_msvc_dll(char szFile[MAX_PATH], char szPath[MAX_PATH])
PfnDliHook __pfnDliFailureHook2
#define CBA_DEFERRED_SYMBOL_LOAD_PARTIAL
static void init_dbghelp_version()
static void test_SymEnumSymbols(HANDLE hProc, DWORD64 BaseAddress)
HLOCAL NTAPI LocalFree(HLOCAL hMem)
BOOL(CALLBACK * PSYMBOL_REGISTERED_CALLBACK64)(HANDLE, ULONG, ULONG64, ULONG64)
DWORD WINAPI SymGetOptions(void)
BOOL WINAPI SymEnumSymbols(HANDLE hProcess, ULONG64 BaseOfDll, PCSTR Mask, PSYM_ENUMERATESYMBOLS_CALLBACK EnumSymbolsCallback, PVOID UserContext)
DWORD WINAPI GetCurrentDirectoryA(IN DWORD nBufferLength, OUT LPSTR lpBuffer)
#define CBA_DEFERRED_SYMBOL_LOAD_START
DWORD WINAPI SizeofResource(HINSTANCE hModule, HRSRC hRsrc)
#define init_sym(fInvadeProcess)
#define ok_ulonglong(expression, result)
static void test_SymFromAddr(HANDLE hProc, DWORD64 BaseAddress)
#define ERROR_MOD_NOT_FOUND
HMODULE WINAPI GetModuleHandleW(LPCWSTR lpModuleName)
int strcmp(const char *String1, const char *String2)
BOOL WINAPI SymFromName(HANDLE hProcess, PCSTR Name, PSYMBOL_INFO Symbol)
char * cleanup(char *str)
HLOCAL NTAPI LocalAlloc(UINT uFlags, SIZE_T dwBytes)
#define CBA_DEFERRED_SYMBOL_LOAD_CANCEL
LPCWSTR LPCWSTR szModuleName
static struct _symregcallback_test_data symregcallback_test_data[]
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
BOOL WINAPI SymGetModuleInfo64(HANDLE hProcess, DWORD64 dwAddr, PIMAGEHLP_MODULE64 ModuleInfo)
BOOL WINAPI SymRegisterCallbackW64(HANDLE hProcess, PSYMBOL_REGISTERED_CALLBACK64 CallbackFunction, ULONG64 UserContext)
static BOOL CALLBACK EnumSymProc(PSYMBOL_INFO pSymInfo, ULONG SymbolSize, PVOID UserContext)
LPAPI_VERSION WINAPI ImagehlpApiVersion(VOID)
static BOOL supports_pdb(HANDLE hProc, DWORD64 BaseAddress)
BOOL WINAPI VerQueryValueW(LPCVOID pBlock, LPCWSTR lpSubBlock, LPVOID *lplpBuffer, PUINT puLen)