ManagedMemory.FreeBytes vs GC Message

For debugging purposes, I have a function that checks ManagedMemory.FreeBytes every second. If it drops below 20,000 it will print the GC Message to the debug window using: System.GC.GetTotalMemory(false);

The GC report says at the top that it has approximately 145000 bytes available.

What is the difference between ManagedMemory.FreeBytes and what is shown in the GC report?