1
I Use This!
Very Low Activity

Commits : Listings

Analyzed 23 days ago. based on code collected 23 days ago.
Jan 28, 2024 — Jan 28, 2025
Commit Message Contributor Files Modified Lines Added Lines Removed Code Location Date
Finished removing any reliance upon GetModuleHandle during critical places where it has been unreliable. More... over 18 years ago
Changed the way modules get attached. Instead of attaching to modules during the enumeration, the process is split into two phases. First all modules are enumerated, during which time information about each module is recorded in a ModuleSet. Next, all modules listed in the ModuleSet are attached. Then after all modules are attached, VLD cuts over and begins using the new ModuleSet. By switching to the new ModuleSet atomically, there should never be a need to protect any areas of the allocation tracking logic that need to walk or otherwise access the ModuleSet. More... over 18 years ago
Removed calls to "enabled" from VLDEnable and VLDDisable, since enabled may now return false, not because the "disabled" flag is set, but because VLD has not fully initialized yet. More... over 18 years ago
Removed reliance on GetModuleHandle from patchimport and restoreimport, as it has proven to be unreliable (particularly when the module in question was loaded from the Side-by-Side cache). Instead, the patchtable is populated with the base address of loaded modules when they are first loaded, and those values are used. More... over 18 years ago
Added Muterator support to the Set template class, so that we have mutable iterators in addition to the preexisting const iterators. More... over 18 years ago
Updated to reflect the 1.9d release. More... over 18 years ago
Update to reflect the latest edited version posted to the website, after the 1.9c update. More... over 18 years ago
Fixed the bug where the copy of vld.ini in the installation directory overrides any other copies of vld.ini. More... over 18 years ago
Updated for the 1.9d release. More... over 18 years ago
Added the required files to use the 8.0 CRT as a private assembly. More... over 18 years ago
Modified the testsuite project to make it easier to use when building VLD in release mode. More... over 18 years ago
Bumped version number up to 1.9d. More... over 18 years ago
Switched to linking with the DLL version of the C Runtime Library to workaround a bug in the Debug Help Library where it doesn't reliably lookup symbolic information if the program being debugged links with the DLL CRT while VLD links with the static CRT. Modified project to be a little easier to use with the testsuite in Release mode. More... over 18 years ago
Fixed assert in vlddelete. RtlFreeHeap may return any non-zero value on success, not just TRUE. More... over 18 years ago
Bumped the version up to patch revision level p3. More... over 18 years ago
Bumped the patch revision level up to p3. More... over 18 years ago
Modified the configurations to make it easier to test the release build against the test suite. More... over 18 years ago
Optimized the release build a bit more. More... over 18 years ago
Made some changes to the configurations, so that the release build can more easily be tested with the test suite. More... over 18 years ago
Added a check to verify that we got a valid TLS index. Also added missing code to free the TLS index upon exit. More... over 18 years ago
Switched all the TLS code from static (using __declspec(thread)) to dynamic TLS (using TlsAlloc et. al.). This fixes the bug where, in some cases, the loader does not initialize thread local storage in a timely manner while loading DLLs. This was causing m_tls to be NULL and was causing many access violation exceptions to be taken. More... over 18 years ago
Switched all the TLS code from static (using __declspec(thread)) to dynamic TLS (using TlsAlloc et. al.). This fixes the bug where, in some cases, the loader does not initialize thread local storage in a timely manner while loading DLLs. This was causing m_tls to be NULL and was causing many access violation exceptions to be taken. More... over 18 years ago
Switched all the TLS code from static (using __declspec(thread)) to dynamic TLS (using TlsAlloc et. al.). This fixes the bug where, in some cases, the loaded does not initialize thread local storage in a timely manner while loading DLLs. This was causing m_tls to be NULL and was causing many access violation exceptions to be taken. More... over 18 years ago
Added support for supplying the full path to modules to be patched/restored as a workaround for the problem where sometimes GetModuleHandle fails for modules stored in the side-by-side cache, unless the full path is specified. More... over 18 years ago
Fixed the bug where, if VLD was not installed using the provided installer, but instead just the libraries are copied (i.e. no registry information exists), it would attempt to load dbghelp.dll from the root of the drive instead of letting the OS do the standard search. Bumped the version's patch level to 1.9c(p2). More... over 18 years ago
Fixed the bug where, if VLD was not installed using the provided installer, but instead just the libraries are copied (i.e. no registry information exists), it would attempt to load dbghelp.dll from the root of the drive instead of letting the OS do the standard search. More... over 18 years ago
Since the Kernel deadlock related to the loader has been fixed, modified the testsuite to allow it to call LoadLibrary with impunity. Also fixed a bug where the number '2' was hardcoded where NUMDUPLEAKS should have been used instead. More... over 18 years ago
Corrected a mistake in checking for the user selection when using a yes/no message box instead of an ok/cancel message box. More... over 18 years ago
Split locking into two categories: heap and loader. The heap lock protects heap-related resources, while the loader lock protects the module loading process (enumerating and attaching to modules). This prevents a Kernel deadlock that occurs during loading of a module when the loader attempts to allocate memory (which requires VLD's lock in _RtlAllocateHeap), but VLD's lock was already held by another thread that's blocked on the loader's internal lock inside _LdrLoadDll. Bumped the version's patch level to 1.9c(p1). More... over 18 years ago
Split locking into two categories: heap and loader. The heap lock protects heap-related resources, while the loader lock protects the module loading process (enumerating and attaching to modules). This prevents a Kernel deadlock that occurs during loading of a module when the loader attempts to allocate memory (which requires VLD's lock in _RtlAllocateHeap), but VLD's lock was already held by another thread that's blocked on the loader's internal lock inside _LdrLoadDll. More... over 18 years ago