support using an external allocator for standalone mode
When using DR in standalone mode, it may be best to use an external, regular heap allocator, rather than DR's custom allocator, for several reasons:
-
Better performance: DR standalone mode is not using per-thread dcontexts, meaning all allocations are global and using a global lock.
-
Tool support: sanitizers like ThreadSanitizer do not recognize DR's allocator or its locks, leading to false positive reports
-
Scalability: xref #3296 (closed), which is now solved.