aboutsummaryrefslogtreecommitdiff
path: root/redist
diff options
context:
space:
mode:
authorJustin Berger <j.david.berger@gmail.com>2018-07-06 09:42:49 -0600
committerJustin Berger <j.david.berger@gmail.com>2018-07-06 09:42:49 -0600
commit0cadc2d0efbdba661f3c41e6bca43c8cefb283b7 (patch)
treec7cc1b9a85cd12d499ba78f8c5ba3f4d192e3b98 /redist
parent4682f04fe7082581a13fd0dfd1c256352455ffda (diff)
downloadlibsurvive-0cadc2d0efbdba661f3c41e6bca43c8cefb283b7.tar.gz
libsurvive-0cadc2d0efbdba661f3c41e6bca43c8cefb283b7.tar.bz2
Fixed symbol enumeration for windows
Diffstat (limited to 'redist')
-rw-r--r--redist/symbol_enumerator.c58
1 files changed, 2 insertions, 56 deletions
diff --git a/redist/symbol_enumerator.c b/redist/symbol_enumerator.c
index 31bb68e..909648c 100644
--- a/redist/symbol_enumerator.c
+++ b/redist/symbol_enumerator.c
@@ -4,63 +4,9 @@
#if defined( WIN32 ) || defined( WINDOWS ) || defined( USE_WINDOWS ) || defined( _WIN32 )
#include <windows.h>
+#include <dbghelp.h>
-typedef struct _SYMBOL_INFO {
- ULONG SizeOfStruct;
- ULONG TypeIndex;
- ULONG64 Reserved[2];
- ULONG Index;
- ULONG Size;
- ULONG64 ModBase;
- ULONG Flags;
- ULONG64 Value;
- ULONG64 Address;
- ULONG Register;
- ULONG Scope;
- ULONG Tag;
- ULONG NameLen;
- ULONG MaxNameLen;
- TCHAR Name[1];
-} SYMBOL_INFO, *PSYMBOL_INFO;
-typedef struct _IMAGEHLP_STACK_FRAME {
- ULONG64 InstructionOffset;
- ULONG64 ReturnOffset;
- ULONG64 FrameOffset;
- ULONG64 StackOffset;
- ULONG64 BackingStoreOffset;
- ULONG64 FuncTableEntry;
- ULONG64 Params[4];
- ULONG64 Reserved[5];
- BOOL Virtual;
- ULONG Reserved2;
-} IMAGEHLP_STACK_FRAME, *PIMAGEHLP_STACK_FRAME;
-
-
-typedef BOOL (*PSYM_ENUMERATESYMBOLS_CALLBACK)(
- PSYMBOL_INFO pSymInfo,
- ULONG SymbolSize,
- PVOID UserContext
- );
-
-BOOL WINAPI SymEnumSymbols(
- HANDLE hProcess,
- ULONG64 BaseOfDll,
- PCTSTR Mask,
- PSYM_ENUMERATESYMBOLS_CALLBACK EnumSymbolsCallback,
- const PVOID UserContext
-);
-
-BOOL WINAPI SymInitialize(
- HANDLE hProcess,
- PCTSTR UserSearchPath,
- BOOL fInvadeProcess
-);
-
-BOOL WINAPI SymCleanup(
- HANDLE hProcess
-);
-
-BOOL mycb(PSYMBOL_INFO pSymInfo, ULONG SymbolSize, PVOID UserContext) {
+BOOL CALLBACK mycb(PSYMBOL_INFO pSymInfo, ULONG SymbolSize, PVOID UserContext) {
SymEnumeratorCallback cb = (SymEnumeratorCallback)UserContext;
return !cb("", &pSymInfo->Name[0], (void *)pSymInfo->Address, (long)pSymInfo->Size);
}