* Get heap-profile-table.cc using DeleteMatchingFiles
* Get heap-profile-table.cc using FillProcSelfMaps, DumpProcSelfMaps
* Play around with ExperimentalGetStackTrace
* Support the windows-level memory-allocation functions?  See
    /home/build/googleclient/earth/client/tools/memorytracking/client/memorytrace/src/memorytrace.cpp
    /home/build/googleclient/total_recall/common/sitestep/*
    http://www.internals.com/articles/apispy/apispy.htm
    http://www.wheaty.net/APISPY32.zip
* Verify /proc/xxx/maps:
    http://www.geocities.com/wah_java_dotnet/procmap/index.html
* Figure out how to edit the executable IAT so tcmalloc.dll is loaded first
* Use QueryPerformanceCounter instead of GetTickCount() (also for sparsehash)

----
More info on windows-level memory-allocation functions:
   C runtime malloc
   LocalAlloc
   GlobalAlloc
   HeapAlloc
   VirtualAlloc
   mmap stuff

malloc, LocalAlloc and GlobalAlloc call HeapAlloc, which calls
VirtualAlloc when needed, which calls VirtualAllocEx (the __sbrk equiv?)

siggi sez: If you want to do a generic job, you probably need to
preserve the semantics of all of these Win32 calls:
   Heap32First
   Heap32ListFirst
   Heap32ListNext
   Heap32Next
   HeapAlloc
   HeapCompact
   HeapCreate
   HeapCreateTagsW
   HeapDestroy
   HeapExtend
   HeapFree
   HeapLock
   HeapQueryInformation
   HeapQueryTagW
   HeapReAlloc
   HeapSetInformation
   HeapSize
   HeapSummary
   HeapUnlock
   HeapUsage
   HeapValidate
   HeapWalk

kernel32.dll export functions and nt.dll export functions:
   http://www.shorthike.com/svn/trunk/tools_win32/dm/lib/kernel32.def
   http://undocumented.ntinternals.net/

You can edit the executable IAT to have the patching DLL be the
first one loaded.

Most complete way to intercept system calls is patch the functions
(not the IAT).

Microsoft has somee built-in routines for heap-checking:
   http://support.microsoft.com/kb/268343

----
Itimer replacement:
   http://msdn2.microsoft.com/en-us/library/ms712713.aspx

----
Changes I've had to make to the project file:

0) When creating the project file, click on "no autogenerated files"

--- For each project:
1) Alt-F7 -> General -> [pulldown "all configurations" ] -> Output Directory -> $(SolutionDir)$(ConfigurationName)
2) Alt-F7 -> General -> [pulldown "all configurations" ] -> Intermediate Directory -> $(ConfigurationName)

--- For each .cc file:
1) Alt-F7 -> C/C++ -> General -> [pulldown "all configurations"] -> Additional Include Directives --> src/windows + src/
2) Alt-F7 -> C/C++ -> Code Generation -> Runtime Library -> Multi-threaded, debug/release, DLL or not

--- For DLL:
3) Alt-F7 -> Linker -> Input -> [pulldown "all configurations" ] -> Module Definition File -> src\windows\vc7and8.def
--- For binaries depending on a DLL:
3) Right-click on project -> Project Dependencies -> [add dll]
--- For static binaries (not depending on a DLL)
3) Alt-F7 -> C/C++ -> Command Line -> [pulldown "all configurations"] -> /D PERFTOOLS_DLL_DECL=
