ChangeSet ID: 21548 CVSROOT: /opt/cvs-commit Module name: wine Changes by: julliard@winehq.org 2005/11/29 05:09:21
Modified files: dlls/dbghelp : dbghelp.spec stack.c include : dbghelp.h
Log message: Vitaliy Margolen wine-patch@kievinfo.com Stub StackWalk64.
Patch: http://cvs.winehq.org/patch.py?id=21548
Old revision New revision Changes Path 1.17 1.18 +1 -1 wine/dlls/dbghelp/dbghelp.spec 1.11 1.12 +18 -0 wine/dlls/dbghelp/stack.c 1.23 1.24 +46 -0 wine/include/dbghelp.h
Index: wine/dlls/dbghelp/dbghelp.spec diff -u -p wine/dlls/dbghelp/dbghelp.spec:1.17 wine/dlls/dbghelp/dbghelp.spec:1.18 --- wine/dlls/dbghelp/dbghelp.spec:1.17 29 Nov 2005 11: 9:21 -0000 +++ wine/dlls/dbghelp/dbghelp.spec 29 Nov 2005 11: 9:21 -0000 @@ -23,7 +23,7 @@ @ stdcall MiniDumpReadDumpStream(ptr long ptr ptr ptr) @ stdcall MiniDumpWriteDump(ptr long ptr long long long long) @ stdcall SearchTreeForFile(str str str) -@ stub StackWalk64 +@ stdcall StackWalk64(long long long ptr ptr ptr ptr ptr ptr) @ stdcall StackWalk(long long long ptr ptr ptr ptr ptr ptr) @ stdcall SymCleanup(long) @ stdcall SymEnumLines(ptr double str str ptr ptr) Index: wine/dlls/dbghelp/stack.c diff -u -p wine/dlls/dbghelp/stack.c:1.11 wine/dlls/dbghelp/stack.c:1.12 --- wine/dlls/dbghelp/stack.c:1.11 29 Nov 2005 11: 9:21 -0000 +++ wine/dlls/dbghelp/stack.c 29 Nov 2005 11: 9:21 -0000 @@ -401,6 +401,24 @@ done_err: return FALSE; }
+/*********************************************************************** + * StackWalk64 (DBGHELP.@) + */ +BOOL WINAPI StackWalk64(DWORD MachineType, HANDLE hProcess, HANDLE hThread, + LPSTACKFRAME64 frame, LPVOID ctx, + PREAD_PROCESS_MEMORY_ROUTINE64 f_read_mem, + PFUNCTION_TABLE_ACCESS_ROUTINE64 FunctionTableAccessRoutine, + PGET_MODULE_BASE_ROUTINE64 GetModuleBaseRoutine, + PTRANSLATE_ADDRESS_ROUTINE64 f_xlat_adr) +{ + FIXME("(%ld, %p, %p, %p, %p, %p, %p, %p, %p) - stub!\n", + MachineType, hProcess, hThread, frame, ctx, + f_read_mem, FunctionTableAccessRoutine, + GetModuleBaseRoutine, f_xlat_adr); + SetLastError(ERROR_CALL_NOT_IMPLEMENTED); + return FALSE; +} + /****************************************************************** * SymRegisterFunctionEntryCallback (DBGHELP.@) * Index: wine/include/dbghelp.h diff -u -p wine/include/dbghelp.h:1.23 wine/include/dbghelp.h:1.24 --- wine/include/dbghelp.h:1.23 29 Nov 2005 11: 9:21 -0000 +++ wine/include/dbghelp.h 29 Nov 2005 11: 9:21 -0000 @@ -60,6 +60,13 @@ typedef struct _tagADDRESS ADDRESS_MODE Mode; } ADDRESS, *LPADDRESS;
+typedef struct _tagADDRESS64 +{ + DWORD64 Offset; + WORD Segment; + ADDRESS_MODE Mode; +} ADDRESS64, *LPADDRESS64; + #define SYMF_OMAP_GENERATED 0x00000001 #define SYMF_OMAP_MODIFIED 0x00000002 #define SYMF_USER_GENERATED 0x00000004 @@ -864,6 +871,19 @@ typedef struct _KDHELP DWORD SystemRangeStart; } KDHELP, *PKDHELP;
+typedef struct _KDHELP64 +{ + DWORD64 Thread; + DWORD ThCallbackStack; + DWORD ThCallbackBStore; + DWORD NextCallback; + DWORD FramePointer; + DWORD64 KiCallUserMode; + DWORD64 KeUserCallbackDispatcher; + DWORD64 SystemRangeStart; + DWORD64 Reserved[8]; +} KDHELP64, *PKDHELP64; + typedef struct _STACKFRAME { ADDRESS AddrPC; @@ -879,6 +899,21 @@ typedef struct _STACKFRAME ADDRESS AddrBStore; } STACKFRAME, *LPSTACKFRAME;
+typedef struct _STACKFRAME64 +{ + ADDRESS64 AddrPC; + ADDRESS64 AddrReturn; + ADDRESS64 AddrFrame; + ADDRESS64 AddrStack; + ADDRESS64 AddrBStore; + PVOID FuncTableEntry; + DWORD64 Params[4]; + BOOL Far; + BOOL Virtual; + DWORD64 Reserved[3]; + KDHELP64 KdHelp; +} STACKFRAME64, *LPSTACKFRAME64; + typedef BOOL (CALLBACK *PREAD_PROCESS_MEMORY_ROUTINE) (HANDLE, DWORD, PVOID, DWORD, PDWORD); typedef PVOID (CALLBACK *PFUNCTION_TABLE_ACCESS_ROUTINE)(HANDLE, DWORD); @@ -890,6 +925,17 @@ BOOL WINAPI StackWalk(DWORD, HANDLE, HAN PGET_MODULE_BASE_ROUTINE, PTRANSLATE_ADDRESS_ROUTINE);
+typedef BOOL (CALLBACK *PREAD_PROCESS_MEMORY_ROUTINE64) + (HANDLE, DWORD64, PVOID, DWORD, PDWORD); +typedef PVOID (CALLBACK *PFUNCTION_TABLE_ACCESS_ROUTINE64)(HANDLE, DWORD64); +typedef DWORD (CALLBACK *PGET_MODULE_BASE_ROUTINE64)(HANDLE, DWORD64); +typedef DWORD (CALLBACK *PTRANSLATE_ADDRESS_ROUTINE64)(HANDLE, HANDLE, LPADDRESS64); +BOOL WINAPI StackWalk64(DWORD, HANDLE, HANDLE, LPSTACKFRAME64, PVOID, + PREAD_PROCESS_MEMORY_ROUTINE64, + PFUNCTION_TABLE_ACCESS_ROUTINE64, + PGET_MODULE_BASE_ROUTINE64, + PTRANSLATE_ADDRESS_ROUTINE64); + PVOID WINAPI SymFunctionTableAccess(HANDLE, DWORD);
typedef PVOID (CALLBACK *PSYMBOL_FUNCENTRY_CALLBACK)(HANDLE, DWORD, PVOID);