I was searching for .NET memory leak detection tools and .NET profilers - on internet there is plenty of them, however - they are all commercial tools. I would like to check if there is any open-source alternative, what is their development status (what is working and what is not working), and if it's possible - if someone could pinpoint me to which API's are used to "hook" .NET garbage collector.
Also I've understood that reference analysis is non-trivial - if GC does not collect memory - then it means that someone references that data - so that in a turn requires some sort of reference backtracking - also interesting what API's and techniques exists to analyze references.
I would prefer that code would be low level - preferably C / C++ - I suspect that it has something to do with C++ / COM undocumented API's. But if there is also C# interfaces to perform memory analysis - I could take them as well.
So if it's possible:
- can you post here links to open source code projects / codes which hooks .NET memory management.
- can you post links to API documentation which relates to hooking memory management.