|
36b92340
|
2021-03-15T11:21:09
|
|
dladdr: const void *addr
on unix the addr argument seems to be const
fix that for consistency
|
|
9e40646c
|
2021-02-03T21:01:24
|
|
Fix noinline for older compiler versions (e.g. Visual Studio 6.0)
Visual Studio 6.0 does not support __declspec(noinline) and throw error.
Add checks for compilers which support noinline to prevent compile errors.
|
|
7da10545
|
2021-02-03T21:00:56
|
|
Define ULONG_PTR for older SDK
If compiling with _WIN32_WINNT target prior 0x0500 then SDK does not define
ULONG_PTR type. Such systems are only 32bit so define it explicitly to
32bit type ULONG.
|
|
d1a0d28f
|
2021-02-03T21:00:28
|
|
Fix MSVC 14.00 compile warning: warning C4244: '=' : conversion from 'ULONG_PTR' to 'char', possible loss of data
|
|
06fea3fe
|
2021-02-03T20:59:58
|
|
Add helper function MyGetModuleHandleFromAddress()
This function implements calling GetModuleHandleExA() with correct flags to
retrieve hModule from passed address.
To allow compilation also with older compilers and environments (like WDK)
with any _WIN32_WINNT value, retrieve pointer to this function via
GetProcAddress(). And as a fallback implementation use old code via
VirtualQuery() which was there prior commit 8ec5ffef2eca.
|
|
0e9d85a9
|
2021-02-03T20:59:18
|
|
Fix helper function MyEnumProcessModules()
Call SetErrorMode(SEM_FAILCRITICALERRORS) prior opening Psapi.dll library
to avoid GUI error messages.
Close Psapi.dll library via FreeLibrary() if symbol was not retrieved to
prevent possible memory leaks.
Try to get K32EnumProcessModules symbol from Kernel32.dll library as it is
preferred way how to call EnumProcessModules() on Windows 7 and newer
versions.
If retrieving EnumProcessModules symbol failed with both methods then do
not try it again on next MyEnumProcessModules() function call.
|
|
c172ee21
|
2021-02-03T20:58:39
|
|
Avoid calling SetLastError() and GetLastError() internally
There is no need for propagating internal errors via SetLastError() and
GetLastError() calls. Just use additional argument for save_err_str()
function. Also dlfcn API is POSIX and does not use GetLastError().
|
|
b89f8932
|
2021-02-03T20:58:15
|
|
Move hCurrentProc variable to scope where is used
|
|
f7e7a5d7
|
2021-02-03T20:57:40
|
|
Fix some style issues
|
|
b46da884
|
2021-01-29T14:00:30
|
|
Remove duplicate checks for NULL pointers
is_valid_address() already rejects NULL addresses, so there is no need to check address for NULL.
|
|
e53ecd53
|
2021-01-29T13:59:41
|
|
Remove code for finding symbol name in import table
It is not required as import table can use only symbols which are exported
and therefore are in export table. So if symbol is not found in export
table it cannot be in import table.
|
|
86a41b92
|
2021-01-25T23:27:22
|
|
Function dladdr() now retrieve symbol name and symbol address from both export and import tables
dladdr tests for Windows now should always pass like on other systems.
|
|
0ea2334d
|
2020-12-11T14:32:52
|
|
Add function dladdr() and associated test application test-dladdr
|
|
d230e1ca
|
2020-12-13T14:48:44
|
|
Rewrite function save_err_ptr_str() to not use sprintf()
sprintf() is marked by MSVC as unsafe and suppressing compile warning does
not work. It is still generated on AppVeyor. So rewrite code for converting
pointer number to string via open coded for-loop and do not use unsafe
sprintf() function anymore. New code correctly handles both 32bit and 64bit
variants and does not use any #ifdef _MSC_VER anymore.
|
|
f0ac8495
|
2020-08-25T23:34:19
|
|
Move cmake targets into sub directories
|