about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2024-09-28 15:19:08 +0200
committerptitSeb <sebastien.chev@gmail.com>2024-09-28 15:19:08 +0200
commit11724fd2ada743774f9cf2e66d5403801412aefb (patch)
tree81946d4372d1a454e0d518a9c59f1da1793b73ba
parentc0955d33dea6428aa495e0809432d95a539b8b11 (diff)
downloadbox64-11724fd2ada743774f9cf2e66d5403801412aefb.tar.gz
box64-11724fd2ada743774f9cf2e66d5403801412aefb.zip
[BOX32][WRAPPER] Added 32bits wrapped/hacked libtcmallocminimal
-rw-r--r--CMakeLists.txt1
-rw-r--r--src/library_list_32.h2
-rw-r--r--src/wrapped32/generated/functions_list.txt10
-rw-r--r--src/wrapped32/generated/wrappedtcmallocminimaldefs32.h8
-rw-r--r--src/wrapped32/generated/wrappedtcmallocminimaltypes32.h24
-rw-r--r--src/wrapped32/generated/wrappedtcmallocminimalundefs32.h8
-rw-r--r--src/wrapped32/generated/wrapper32.c4
-rw-r--r--src/wrapped32/generated/wrapper32.h2
-rw-r--r--src/wrapped32/wrappedtcmallocminimal.c23
-rw-r--r--src/wrapped32/wrappedtcmallocminimal_private.h442
10 files changed, 524 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 28d37304..e5086111 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -799,6 +799,7 @@ if(BOX32)
         "${BOX64_ROOT}/src/wrapped32/wrappedlibxrandr.c"
         "${BOX64_ROOT}/src/wrapped32/wrappedlibxxf86vm.c"
         "${BOX64_ROOT}/src/wrapped32/wrappedexpat.c"
+        "${BOX64_ROOT}/src/wrapped32/wrappedtcmallocminimal.c"
     )
     endif()
     string(REPLACE ".c" "_private.h" MODROOT ${BOX64_ROOT})
diff --git a/src/library_list_32.h b/src/library_list_32.h
index 0a3086a3..320cec19 100644
--- a/src/library_list_32.h
+++ b/src/library_list_32.h
@@ -35,3 +35,5 @@ GO("libexpat.so.1", expat)
 GO("libexpat.so", expat)
 
 GO("crashhandler.so", crashhandler)
+GO("libtcmalloc_minimal.so.0", tcmallocminimal)
+GO("libtcmalloc_minimal.so.4", tcmallocminimal)
diff --git a/src/wrapped32/generated/functions_list.txt b/src/wrapped32/generated/functions_list.txt
index 118bec1d..098f5015 100644
--- a/src/wrapped32/generated/functions_list.txt
+++ b/src/wrapped32/generated/functions_list.txt
@@ -186,6 +186,7 @@
 #() lFui -> lFui
 #() lFll -> lFll
 #() lFpl -> lFpl
+#() LFLi -> LFLi
 #() LFpL -> LFpL
 #() LFpp -> LFpp
 #() LFXi -> LFXi
@@ -747,6 +748,7 @@
 #() pFpiiuu -> pFpiiuu
 #() pFpippp -> pFpippp
 #() pFpuiii -> pFpuiii
+#() pFpuuip -> pFpuuip
 #() pFppuup -> pFppuup
 #() pFppupp -> pFppupp
 #() pFXpipi -> pFXpipi
@@ -1705,3 +1707,11 @@ wrappedsdl2:
 - pFpiiiiu:
   - SDL_CreateRGBSurfaceWithFormatFrom
 % JFEi -> pFEpi
+wrappedtcmallocminimal:
+- pFp:
+- iFpL:
+  - munmap
+- pFpLiiii:
+  - mmap
+- pFpLiiiI:
+  - mmap64
diff --git a/src/wrapped32/generated/wrappedtcmallocminimaldefs32.h b/src/wrapped32/generated/wrappedtcmallocminimaldefs32.h
new file mode 100644
index 00000000..52e3ea68
--- /dev/null
+++ b/src/wrapped32/generated/wrappedtcmallocminimaldefs32.h
@@ -0,0 +1,8 @@
+/******************************************************************
+ * File automatically generated by rebuild_wrappers_32.py (v0.0.1.1) *
+ ******************************************************************/
+#ifndef __wrappedtcmallocminimalDEFS32_H_
+#define __wrappedtcmallocminimalDEFS32_H_
+
+
+#endif // __wrappedtcmallocminimalDEFS32_H_
diff --git a/src/wrapped32/generated/wrappedtcmallocminimaltypes32.h b/src/wrapped32/generated/wrappedtcmallocminimaltypes32.h
new file mode 100644
index 00000000..ee34efa2
--- /dev/null
+++ b/src/wrapped32/generated/wrappedtcmallocminimaltypes32.h
@@ -0,0 +1,24 @@
+/******************************************************************
+ * File automatically generated by rebuild_wrappers_32.py (v0.0.1.1) *
+ ******************************************************************/
+#ifndef __wrappedtcmallocminimalTYPES32_H_
+#define __wrappedtcmallocminimalTYPES32_H_
+
+#ifndef LIBNAME
+#error You should only #include this file inside a wrapped*.c file
+#endif
+#ifndef ADDED_FUNCTIONS
+#define ADDED_FUNCTIONS() 
+#endif
+
+typedef void* (*pFp_t)(void*);
+typedef int32_t (*iFpL_t)(void*, uintptr_t);
+typedef void* (*pFpLiiii_t)(void*, uintptr_t, int32_t, int32_t, int32_t, int32_t);
+typedef void* (*pFpLiiiI_t)(void*, uintptr_t, int32_t, int32_t, int32_t, int64_t);
+
+#define SUPER() ADDED_FUNCTIONS() \
+	GO(munmap, iFpL_t) \
+	GO(mmap, pFpLiiii_t) \
+	GO(mmap64, pFpLiiiI_t)
+
+#endif // __wrappedtcmallocminimalTYPES32_H_
diff --git a/src/wrapped32/generated/wrappedtcmallocminimalundefs32.h b/src/wrapped32/generated/wrappedtcmallocminimalundefs32.h
new file mode 100644
index 00000000..5c955240
--- /dev/null
+++ b/src/wrapped32/generated/wrappedtcmallocminimalundefs32.h
@@ -0,0 +1,8 @@
+/******************************************************************
+ * File automatically generated by rebuild_wrappers_32.py (v0.0.1.1) *
+ ******************************************************************/
+#ifndef __wrappedtcmallocminimalUNDEFS32_H_
+#define __wrappedtcmallocminimalUNDEFS32_H_
+
+
+#endif // __wrappedtcmallocminimalUNDEFS32_H_
diff --git a/src/wrapped32/generated/wrapper32.c b/src/wrapped32/generated/wrapper32.c
index 02aa6ed0..b34d68c1 100644
--- a/src/wrapped32/generated/wrapper32.c
+++ b/src/wrapped32/generated/wrapper32.c
@@ -276,6 +276,7 @@ typedef intptr_t (*lFES_t)(x64emu_t*, void*);
 typedef intptr_t (*lFui_t)(uint32_t, int32_t);
 typedef intptr_t (*lFll_t)(intptr_t, intptr_t);
 typedef intptr_t (*lFpl_t)(void*, intptr_t);
+typedef uintptr_t (*LFLi_t)(uintptr_t, int32_t);
 typedef uintptr_t (*LFpL_t)(void*, uintptr_t);
 typedef uintptr_t (*LFpp_t)(void*, void*);
 typedef uintptr_t (*LFXi_t)(void*, int32_t);
@@ -837,6 +838,7 @@ typedef void* (*pFuiupp_t)(uint32_t, int32_t, uint32_t, void*, void*);
 typedef void* (*pFpiiuu_t)(void*, int32_t, int32_t, uint32_t, uint32_t);
 typedef void* (*pFpippp_t)(void*, int32_t, void*, void*, void*);
 typedef void* (*pFpuiii_t)(void*, uint32_t, int32_t, int32_t, int32_t);
+typedef void* (*pFpuuip_t)(void*, uint32_t, uint32_t, int32_t, void*);
 typedef void* (*pFppuup_t)(void*, void*, uint32_t, uint32_t, void*);
 typedef void* (*pFppupp_t)(void*, void*, uint32_t, void*, void*);
 typedef void* (*pFXpipi_t)(void*, void*, int32_t, void*, int32_t);
@@ -1348,6 +1350,7 @@ void lFES_32(x64emu_t *emu, uintptr_t fcn) { lFES_t fn = (lFES_t)fcn; R_EAX = to
 void lFui_32(x64emu_t *emu, uintptr_t fcn) { lFui_t fn = (lFui_t)fcn; R_EAX = to_long(fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8))); }
 void lFll_32(x64emu_t *emu, uintptr_t fcn) { lFll_t fn = (lFll_t)fcn; R_EAX = to_long(fn(to_long(from_ptri(long_t, R_ESP + 4)), to_long(from_ptri(long_t, R_ESP + 8)))); }
 void lFpl_32(x64emu_t *emu, uintptr_t fcn) { lFpl_t fn = (lFpl_t)fcn; R_EAX = to_long(fn(from_ptriv(R_ESP + 4), to_long(from_ptri(long_t, R_ESP + 8)))); }
+void LFLi_32(x64emu_t *emu, uintptr_t fcn) { LFLi_t fn = (LFLi_t)fcn; R_EAX = to_ulong(fn(to_ulong(from_ptri(ulong_t, R_ESP + 4)), from_ptri(int32_t, R_ESP + 8))); }
 void LFpL_32(x64emu_t *emu, uintptr_t fcn) { LFpL_t fn = (LFpL_t)fcn; R_EAX = to_ulong(fn(from_ptriv(R_ESP + 4), to_ulong(from_ptri(ulong_t, R_ESP + 8)))); }
 void LFpp_32(x64emu_t *emu, uintptr_t fcn) { LFpp_t fn = (LFpp_t)fcn; R_EAX = to_ulong(fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8))); }
 void LFXi_32(x64emu_t *emu, uintptr_t fcn) { LFXi_t fn = (LFXi_t)fcn; R_EAX = to_ulong(fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptri(int32_t, R_ESP + 8))); }
@@ -1909,6 +1912,7 @@ void pFuiupp_32(x64emu_t *emu, uintptr_t fcn) { pFuiupp_t fn = (pFuiupp_t)fcn; R
 void pFpiiuu_32(x64emu_t *emu, uintptr_t fcn) { pFpiiuu_t fn = (pFpiiuu_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(uint32_t, R_ESP + 16), from_ptri(uint32_t, R_ESP + 20))); }
 void pFpippp_32(x64emu_t *emu, uintptr_t fcn) { pFpippp_t fn = (pFpippp_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20))); }
 void pFpuiii_32(x64emu_t *emu, uintptr_t fcn) { pFpuiii_t fn = (pFpuiii_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 20))); }
+void pFpuuip_32(x64emu_t *emu, uintptr_t fcn) { pFpuuip_t fn = (pFpuuip_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptriv(R_ESP + 20))); }
 void pFppuup_32(x64emu_t *emu, uintptr_t fcn) { pFppuup_t fn = (pFppuup_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ptri(uint32_t, R_ESP + 16), from_ptriv(R_ESP + 20))); }
 void pFppupp_32(x64emu_t *emu, uintptr_t fcn) { pFppupp_t fn = (pFppupp_t)fcn; R_EAX = to_ptrv(fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20))); }
 void pFXpipi_32(x64emu_t *emu, uintptr_t fcn) { pFXpipi_t fn = (pFXpipi_t)fcn; R_EAX = to_ptrv(fn(getDisplay(from_ptriv(R_ESP + 4)), from_ptriv(R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptriv(R_ESP + 16), from_ptri(int32_t, R_ESP + 20))); }
diff --git a/src/wrapped32/generated/wrapper32.h b/src/wrapped32/generated/wrapper32.h
index 9a738282..a299aa23 100644
--- a/src/wrapped32/generated/wrapper32.h
+++ b/src/wrapped32/generated/wrapper32.h
@@ -227,6 +227,7 @@ void lFES_32(x64emu_t *emu, uintptr_t fnc);
 void lFui_32(x64emu_t *emu, uintptr_t fnc);
 void lFll_32(x64emu_t *emu, uintptr_t fnc);
 void lFpl_32(x64emu_t *emu, uintptr_t fnc);
+void LFLi_32(x64emu_t *emu, uintptr_t fnc);
 void LFpL_32(x64emu_t *emu, uintptr_t fnc);
 void LFpp_32(x64emu_t *emu, uintptr_t fnc);
 void LFXi_32(x64emu_t *emu, uintptr_t fnc);
@@ -788,6 +789,7 @@ void pFuiupp_32(x64emu_t *emu, uintptr_t fnc);
 void pFpiiuu_32(x64emu_t *emu, uintptr_t fnc);
 void pFpippp_32(x64emu_t *emu, uintptr_t fnc);
 void pFpuiii_32(x64emu_t *emu, uintptr_t fnc);
+void pFpuuip_32(x64emu_t *emu, uintptr_t fnc);
 void pFppuup_32(x64emu_t *emu, uintptr_t fnc);
 void pFppupp_32(x64emu_t *emu, uintptr_t fnc);
 void pFXpipi_32(x64emu_t *emu, uintptr_t fnc);
diff --git a/src/wrapped32/wrappedtcmallocminimal.c b/src/wrapped32/wrappedtcmallocminimal.c
new file mode 100644
index 00000000..1fdbc304
--- /dev/null
+++ b/src/wrapped32/wrappedtcmallocminimal.c
@@ -0,0 +1,23 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#define _GNU_SOURCE         /* See feature_test_macros(7) */
+#include <dlfcn.h>
+
+#include "wrappedlibs.h"
+
+#include "wrapper32.h"
+#include "bridge.h"
+#include "librarian/library_private.h"
+#include "x64emu.h"
+
+// Fake the lib for now, don't load it
+static const char* tcmallocminimalName = "libtcmalloc_minimal.so.4";
+#define LIBNAME tcmallocminimal
+
+// this preinit basically open "box86" as dlopen (because libtcmalloc_minimal needs to be LD_PRELOAD for it to work)
+#define PRE_INIT\
+    lib->w.lib = dlopen(NULL, RTLD_LAZY | RTLD_GLOBAL);    \
+    if(0)
+
+#include "wrappedlib_init32.h"
diff --git a/src/wrapped32/wrappedtcmallocminimal_private.h b/src/wrapped32/wrappedtcmallocminimal_private.h
new file mode 100644
index 00000000..5187c583
--- /dev/null
+++ b/src/wrapped32/wrappedtcmallocminimal_private.h
@@ -0,0 +1,442 @@
+#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA))
+#error Meh...
+#endif
+
+GO(aligned_alloc, pFuu)
+GO(calloc, pFLL)
+GO(cfree, vFp)
+//GO(_fini, 
+GO(free, vFp)
+//GO(_init, 
+GO(__libc_calloc, pFLL)
+GO(__libc_cfree, vFp)
+GO(__libc_free, vFp)
+GO(__libc_malloc, pFL)
+GO(__libc_memalign, pFLL)
+GO(__libc_pvalloc, pFL)
+GO(__libc_realloc, pFpL)
+GO(__libc_valloc, pFL)
+GOS(mallinfo, pFEp) //%%
+GO(malloc, pFL)
+//GO(MallocExtension_GetAllocatedSize, 
+//GO(MallocExtension_GetEstimatedAllocatedSize, 
+//GO(MallocExtension_GetNumericProperty, 
+//GO(MallocExtension_GetOwnership, 
+//GO(MallocExtension_GetStats, 
+//GO(MallocExtension_GetThreadCacheSize, 
+//GO(MallocExtension_MallocMemoryStats, 
+//GO(MallocExtension_MarkThreadBusy, 
+//GO(MallocExtension_MarkThreadIdle, 
+//GO(MallocExtension_MarkThreadTemporarilyIdle, 
+//GO(MallocExtension_ReleaseFreeMemory, 
+//GO(MallocExtension_ReleaseToSystem, 
+//GO(MallocExtension_SetNumericProperty, 
+//GO(MallocExtension_VerifyAllMemory, 
+//GO(MallocExtension_VerifyArrayNewMemory, 
+//GO(MallocExtension_VerifyMallocMemory, 
+//GO(MallocExtension_VerifyNewMemory, 
+//GO(MallocHook_AddDeleteHook, 
+//GO(MallocHook_AddMmapHook, 
+//GO(MallocHook_AddMremapHook, 
+//GO(MallocHook_AddMunmapHook, 
+//GO(MallocHook_AddNewHook, 
+//GO(MallocHook_AddPreMmapHook, 
+//GO(MallocHook_AddPreSbrkHook, 
+//GO(MallocHook_AddSbrkHook, 
+//GO(MallocHook_GetCallerStackTrace, 
+//GO(MallocHook_RemoveDeleteHook, 
+//GO(MallocHook_RemoveMmapHook, 
+//GO(MallocHook_RemoveMmapReplacement, 
+//GO(MallocHook_RemoveMremapHook, 
+//GO(MallocHook_RemoveMunmapHook, 
+//GO(MallocHook_RemoveMunmapReplacement, 
+//GO(MallocHook_RemoveNewHook, 
+//GO(MallocHook_RemovePreMmapHook, 
+//GO(MallocHook_RemovePreSbrkHook, 
+//GO(MallocHook_RemoveSbrkHook, 
+//GO(MallocHook_SetDeleteHook, 
+//GO(MallocHook_SetMmapHook, 
+//GO(MallocHook_SetMmapReplacement, 
+//GO(MallocHook_SetMremapHook, 
+//GO(MallocHook_SetMunmapHook, 
+//GO(MallocHook_SetMunmapReplacement, 
+//GO(MallocHook_SetNewHook, 
+//GO(MallocHook_SetPreMmapHook, 
+//GO(MallocHook_SetPreSbrkHook, 
+//GO(MallocHook_SetSbrkHook, 
+GO(malloc_size, LFp)
+GO(malloc_stats, vFv)
+GO(malloc_usable_size, LFp)
+GO(mallopt, iFii)
+GO(memalign, pFuu)
+GOM(mmap, pFEpLiiii)    // use the my_mmap from wrappedlibc.c
+GOM(mmap64, pFEpLiiiI)
+GO(mremap, pFpuuip)
+GOM(munmap, iFEpL)
+GO(nallocx, LFLi)
+GO(__posix_memalign, iFpuu)
+GO(posix_memalign, iFpuu)
+//GO(RunningOnValgrind, 
+GO(sbrk, pFl)
+//GO(tc_calloc, 
+//GO(tc_cfree, 
+//GO(tc_delete, 
+//GO(tc_delete_aligned, 
+//GO(tc_delete_aligned_nothrow, 
+//GO(tc_deletearray, 
+//GO(tc_deletearray_aligned, 
+//GO(tc_deletearray_aligned_nothrow, 
+//GO(tc_deletearray_nothrow, 
+//GO(tc_deletearray_sized, 
+//GO(tc_deletearray_sized_aligned, 
+//GO(tc_delete_nothrow, 
+//GO(tc_delete_sized, 
+//GO(tc_delete_sized_aligned, 
+//GO(tc_free, 
+//GO(tc_free_sized, 
+//GO(tc_mallinfo, 
+//GO(tc_malloc, 
+//GO(TCMallocGetenvSafe, 
+//GO(tc_malloc_size, 
+//GO(tc_malloc_skip_new_handler, 
+//GO(tc_malloc_stats, 
+//GO(tc_mallopt, 
+//GO(tc_memalign, 
+//GO(tc_nallocx, 
+//GO(tc_new, 
+//GO(tc_new_aligned, 
+//GO(tc_new_aligned_nothrow, 
+//GO(tc_newarray, 
+//GO(tc_newarray_aligned, 
+//GO(tc_newarray_aligned_nothrow, 
+//GO(tc_newarray_nothrow, 
+//GO(tc_new_nothrow, 
+//GO(tc_posix_memalign, 
+//GO(tc_pvalloc, 
+//GO(tc_query_new_mode, 
+//GO(tc_realloc, 
+//GO(tc_set_new_mode, 
+//GO(tc_valloc, 
+//GO(tc_version, 
+//GO(ValgrindSlowdown, 
+GO(valloc, pFu)
+
+
+//GO(_Z16GetenvBeforeMainPKc, 
+//GO(_Z17RawOpenForWritingPKc, 
+//GO(_Z18GetSystemCPUsCountv, 
+//GO(_Z20GetUniquePathFromEnvPKcPc, 
+//GO(_Z20InitSystemAllocatorsv, 
+//GO(_Z20SleepForMillisecondsi, 
+//GO(_Z20TCMalloc_SystemAllocjPjj, 
+//GO(_Z21TCMalloc_SystemCommitPvj, 
+//GO(_Z22perftools_pthread_oncePiPFvvE, 
+//GO(_Z22TCMalloc_SystemReleasePvj, 
+//GO(_Z24perftools_pthread_atforkPFvvES0_S0_, 
+//GO(_Z28perftools_pthread_key_createPjPFvPvE, 
+//GO(_Z28perftools_pthread_key_deletej, 
+//GO(_Z29perftools_pthread_getspecificj, 
+//GO(_Z29perftools_pthread_setspecificjPv, 
+//GO(_Z8RawClosei, 
+//GO(_Z8RawWriteiPKcj, 
+//GO(_ZdaPv, 
+//GO(_ZdaPvj, 
+//GO(_ZdaPvjSt11align_val_t, 
+//GO(_ZdaPvRKSt9nothrow_t, 
+//GO(_ZdaPvSt11align_val_t, 
+//GO(_ZdaPvSt11align_val_tRKSt9nothrow_t, 
+//GO(_ZdlPv, 
+//GO(_ZdlPvj, 
+//GO(_ZdlPvjSt11align_val_t, 
+//GO(_ZdlPvRKSt9nothrow_t, 
+//GO(_ZdlPvSt11align_val_t, 
+//GO(_ZdlPvSt11align_val_tRKSt9nothrow_t, 
+//GO(_ZN10MallocHook12UnhookedMMapEPvjiiil, 
+//GO(_ZN10MallocHook14UnhookedMUnmapEPvj, 
+//GO(_ZN10MallocHook17InvokeNewHookSlowEPKvj, 
+//GO(_ZN10MallocHook18InvokeMmapHookSlowEPKvS1_jiiil, 
+//GO(_ZN10MallocHook18InvokeSbrkHookSlowEPKvi, 
+//GO(_ZN10MallocHook20InvokeDeleteHookSlowEPKv, 
+//GO(_ZN10MallocHook20InvokeMremapHookSlowEPKvS1_jjiS1_, 
+//GO(_ZN10MallocHook20InvokeMunmapHookSlowEPKvj, 
+//GO(_ZN10MallocHook21InvokePreMmapHookSlowEPKvjiiil, 
+//GO(_ZN10MallocHook21InvokePreSbrkHookSlowEi, 
+//GO(_ZN10MallocHook25InvokeMmapReplacementSlowEPKvjiiilPPv, 
+//GO(_ZN10MallocHook27InvokeMunmapReplacementSlowEPKvjPi, 
+//GO(_ZN11SymbolTable3AddEPKv, 
+//GO(_ZN11SymbolTable9GetSymbolEPKv, 
+//GO(_ZN11SymbolTable9SymbolizeEv, 
+//GO(_ZN12SysAllocatorD0Ev, 
+//GO(_ZN12SysAllocatorD1Ev, 
+//GO(_ZN12SysAllocatorD2Ev, 
+//GO(_ZN13TCMallocGuardC1Ev, 
+//GO(_ZN13TCMallocGuardC2Ev, 
+//GO(_ZN13TCMallocGuardD1Ev, 
+//GO(_ZN13TCMallocGuardD2Ev, 
+//GO(_ZN15MallocExtension10InitializeEv, 
+//GO(_ZN15MallocExtension12GetOwnershipEPKv, 
+//GO(_ZN15MallocExtension13GetHeapSampleEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, 
+//GO(_ZN15MallocExtension14MarkThreadBusyEv, 
+//GO(_ZN15MallocExtension14MarkThreadIdleEv, 
+//GO(_ZN15MallocExtension15ReadStackTracesEPi, 
+//GO(_ZN15MallocExtension15ReleaseToSystemEj, 
+//GO(_ZN15MallocExtension15VerifyAllMemoryEv, 
+//GO(_ZN15MallocExtension15VerifyNewMemoryEPKv, 
+//GO(_ZN15MallocExtension16GetAllocatedSizeEPKv, 
+//GO(_ZN15MallocExtension16GetFreeListSizesEPSt6vectorINS_12FreeListInfoESaIS1_EE, 
+//GO(_ZN15MallocExtension17MallocMemoryStatsEPiPjS0_, 
+//GO(_ZN15MallocExtension17ReleaseFreeMemoryEv, 
+//GO(_ZN15MallocExtension18GetNumericPropertyEPKcPj, 
+//GO(_ZN15MallocExtension18GetSystemAllocatorEv, 
+//GO(_ZN15MallocExtension18GetThreadCacheSizeEv, 
+//GO(_ZN15MallocExtension18SetNumericPropertyEPKcj, 
+//GO(_ZN15MallocExtension18SetSystemAllocatorEP12SysAllocator, 
+//GO(_ZN15MallocExtension18VerifyMallocMemoryEPKv, 
+//GO(_ZN15MallocExtension19GetHeapGrowthStacksEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, 
+//GO(_ZN15MallocExtension20GetMemoryReleaseRateEv, 
+//GO(_ZN15MallocExtension20SetMemoryReleaseRateEd, 
+//GO(_ZN15MallocExtension20VerifyArrayNewMemoryEPKv, 
+//GO(_ZN15MallocExtension25GetEstimatedAllocatedSizeEj, 
+//GO(_ZN15MallocExtension25MarkThreadTemporarilyIdleEv, 
+//GO(_ZN15MallocExtension25ReadHeapGrowthStackTracesEv, 
+//GO(_ZN15MallocExtension6RangesEPvPFvS0_PKN4base11MallocRangeEE, 
+//GO(_ZN15MallocExtension8GetStatsEPci, 
+//GO(_ZN15MallocExtension8instanceEv, 
+//GO(_ZN15MallocExtension8RegisterEPS_, 
+//GO(_ZN15MallocExtensionD0Ev, 
+//GO(_ZN15MallocExtensionD1Ev, 
+//GO(_ZN15MallocExtensionD2Ev, 
+//GO(_ZN16MmapSysAllocator5AllocEjPjj, 
+//GO(_ZN16ProcMapsIterator10FormatLineEPciyyPKcyxS2_y, 
+//GO(_ZN16ProcMapsIterator4InitEiPNS_6BufferEb, 
+//GO(_ZN16ProcMapsIterator4NextEPyS0_PPcS0_PxS2_, 
+//GO(_ZN16ProcMapsIterator7NextExtEPyS0_PPcS0_PxS2_S0_S0_S0_S0_S0_, 
+//GO(_ZN16ProcMapsIteratorC1Ei, 
+//GO(_ZN16ProcMapsIteratorC1EiPNS_6BufferE, 
+//GO(_ZN16ProcMapsIteratorC1EiPNS_6BufferEb, 
+//GO(_ZN16ProcMapsIteratorC2Ei, 
+//GO(_ZN16ProcMapsIteratorC2EiPNS_6BufferE, 
+//GO(_ZN16ProcMapsIteratorC2EiPNS_6BufferEb, 
+//GO(_ZN16ProcMapsIteratorD1Ev, 
+//GO(_ZN16ProcMapsIteratorD2Ev, 
+//GO(_ZN16SbrkSysAllocator5AllocEjPjj, 
+//GO(_ZN16TCMalloc_Printer6printfEPKcz, 
+//GO(_ZN18DevMemSysAllocator5AllocEjPjj, 
+//GO(_ZN19DefaultSysAllocator5AllocEjPjj, 
+//GO(_ZN19HugetlbSysAllocator10InitializeEv, 
+//GO(_ZN19HugetlbSysAllocator13AllocInternalEjPjj, 
+//GO(_ZN19HugetlbSysAllocator5AllocEjPjj, 
+//GO(_ZN22TCMallocImplementation14MarkThreadBusyEv, 
+//GO(_ZN22TCMallocImplementation16GetAllocatedSizeEPKv, 
+//GO(_ZN22TCMallocImplementation25GetEstimatedAllocatedSizeEj, 
+//GO(_ZN4base8internal12SpinLockWakeEPVib, 
+//GO(_ZN4base8internal13SpinLockDelayEPViii, 
+//GO(_ZN8SpinLock10SlowUnlockEv, 
+//GO(_ZN8SpinLock8SlowLockEv, 
+//GO(_ZN8SpinLock8SpinLoopEv, 
+//GO(_ZN8tcmalloc10DeleteSpanEPNS_4SpanE, 
+//GO(_ZN8tcmalloc10DLL_LengthEPKNS_4SpanE, 
+//GO(_ZN8tcmalloc10DLL_RemoveEPNS_4SpanE, 
+//GO(_ZN8tcmalloc10malloc_oomEj, 
+//GO(_ZN8tcmalloc11DLL_PrependEPNS_4SpanES1_, 
+//GO(_ZN8tcmalloc11ThreadCache10BecomeIdleEv, 
+//GO(_ZN8tcmalloc11ThreadCache10InitModuleEv, 
+//GO(_ZN8tcmalloc11ThreadCache11DeleteCacheEPS0_, 
+//GO(_ZN8tcmalloc11ThreadCache11ListTooLongEPNS0_8FreeListEj, 
+//GO(_ZN8tcmalloc11ThreadCache14GetThreadStatsEPyS1_, 
+//GO(_ZN8tcmalloc11ThreadCache15GetSamplePeriodEv, 
+//GO(_ZN8tcmalloc11ThreadCache18DestroyThreadCacheEPv, 
+//GO(_ZN8tcmalloc11ThreadCache18IncreaseCacheLimitEv, 
+//GO(_ZN8tcmalloc11ThreadCache21BecomeTemporarilyIdleEv, 
+//GO(_ZN8tcmalloc11ThreadCache21FetchFromCentralCacheEjiPFPvjE, 
+//GO(_ZN8tcmalloc11ThreadCache21ReleaseToCentralCacheEPNS0_8FreeListEji, 
+//GO(_ZN8tcmalloc11ThreadCache22CreateCacheIfNecessaryEv, 
+//GO(_ZN8tcmalloc11ThreadCache24IncreaseCacheLimitLockedEv, 
+//GO(_ZN8tcmalloc11ThreadCache27RecomputePerThreadCacheSizeEv, 
+//GO(_ZN8tcmalloc11ThreadCache29set_overall_thread_cache_sizeEj, 
+//GO(_ZN8tcmalloc11ThreadCache4InitEm, 
+//GO(_ZN8tcmalloc11ThreadCache7CleanupEv, 
+//GO(_ZN8tcmalloc11ThreadCache7InitTSDEv, 
+//GO(_ZN8tcmalloc11ThreadCache7NewHeapEm, 
+//GO(_ZN8tcmalloc11ThreadCache8ScavengeEv, 
+//GO(_ZN8tcmalloc13cpp_throw_oomEj, 
+//GO(_ZN8tcmalloc13MetaDataAllocEj, 
+//GO(_ZN8tcmalloc15CentralFreeList11InsertRangeEPvS1_i, 
+//GO(_ZN8tcmalloc15CentralFreeList11RemoveRangeEPPvS2_i, 
+//GO(_ZN8tcmalloc15CentralFreeList11ShrinkCacheEib, 
+//GO(_ZN8tcmalloc15CentralFreeList13OverheadBytesEv, 
+//GO(_ZN8tcmalloc15CentralFreeList14MakeCacheSpaceEv, 
+//GO(_ZN8tcmalloc15CentralFreeList14ReleaseToSpansEPv, 
+//GO(_ZN8tcmalloc15CentralFreeList17FetchFromOneSpansEiPPvS2_, 
+//GO(_ZN8tcmalloc15CentralFreeList18ReleaseListToSpansEPv, 
+//GO(_ZN8tcmalloc15CentralFreeList20EvictRandomSizeClassEib, 
+//GO(_ZN8tcmalloc15CentralFreeList21FetchFromOneSpansSafeEiPPvS2_, 
+//GO(_ZN8tcmalloc15CentralFreeList4InitEj, 
+//GO(_ZN8tcmalloc15CentralFreeList8PopulateEv, 
+//GO(_ZN8tcmalloc15CentralFreeList9tc_lengthEv, 
+//GO(_ZN8tcmalloc15cpp_nothrow_oomEj, 
+//GO(_ZN8tcmalloc15StackTraceTable23ReadStackTracesAndClearEv, 
+//GO(_ZN8tcmalloc15StackTraceTable8AddTraceERKNS_10StackTraceE, 
+//GO(_ZN8tcmalloc15StackTraceTableC1Ev, 
+//GO(_ZN8tcmalloc15StackTraceTableC2Ev, 
+//GO(_ZN8tcmalloc15StackTraceTableD1Ev, 
+//GO(_ZN8tcmalloc15StackTraceTableD2Ev, 
+//GO(_ZN8tcmalloc16AlignmentForSizeEj, 
+//GO(_ZN8tcmalloc16DumpProcSelfMapsEi, 
+//GO(_ZN8tcmalloc16FillProcSelfMapsEPciPb, 
+//GO(_ZN8tcmalloc19CentralCacheLockAllEv, 
+//GO(_ZN8tcmalloc21CentralCacheUnlockAllEv, 
+//GO(_ZN8tcmalloc21metadata_system_bytesEv, 
+//GO(_ZN8tcmalloc24allocate_full_malloc_oomEj, 
+//GO(_ZN8tcmalloc27allocate_full_cpp_throw_oomEj, 
+//GO(_ZN8tcmalloc29allocate_full_cpp_nothrow_oomEj, 
+//GO(_ZN8tcmalloc3LogENS_7LogModeEPKciNS_7LogItemES3_S3_S3_, 
+//GO(_ZN8tcmalloc6Logger3AddERKNS_7LogItemE, 
+//GO(_ZN8tcmalloc6Logger6AddNumEyi, 
+//GO(_ZN8tcmalloc6Logger6AddStrEPKci, 
+//GO(_ZN8tcmalloc6Static14InitStaticVarsEv, 
+//GO(_ZN8tcmalloc6Static22InitLateMaybeRecursiveEv, 
+//GO(_ZN8tcmalloc7NewSpanEjj, 
+//GO(_ZN8tcmalloc7Sampler15GetSamplePeriodEv, 
+//GO(_ZN8tcmalloc7Sampler20RecordAllocationSlowEj, 
+//GO(_ZN8tcmalloc7Sampler21PickNextSamplingPointEv, 
+//GO(_ZN8tcmalloc7Sampler4InitEy, 
+//GO(_ZN8tcmalloc7SizeMap11NumMoveSizeEj, 
+//GO(_ZN8tcmalloc7SizeMap4InitEv, 
+//GO(_ZN8tcmalloc8DLL_InitEPNS_4SpanE, 
+//GO(_ZN8tcmalloc8PageHeap10AllocLargeEj, 
+//GO(_ZN8tcmalloc8PageHeap10CommitSpanEPNS_4SpanE, 
+//GO(_ZN8tcmalloc8PageHeap11EnsureLimitEjb, 
+//GO(_ZN8tcmalloc8PageHeap11ReleaseSpanEPNS_4SpanE, 
+//GO(_ZN8tcmalloc8PageHeap12DecommitSpanEPNS_4SpanE, 
+//GO(_ZN8tcmalloc8PageHeap12GetNextRangeEjPN4base11MallocRangeE, 
+//GO(_ZN8tcmalloc8PageHeap14CheckExpensiveEv, 
+//GO(_ZN8tcmalloc8PageHeap17GetLargeSpanStatsEPNS0_14LargeSpanStatsE, 
+//GO(_ZN8tcmalloc8PageHeap17GetSmallSpanStatsEPNS0_14SmallSpanStatsE, 
+//GO(_ZN8tcmalloc8PageHeap17MergeIntoFreeListEPNS_4SpanE, 
+//GO(_ZN8tcmalloc8PageHeap17PrependToFreeListEPNS_4SpanE, 
+//GO(_ZN8tcmalloc8PageHeap17RegisterSizeClassEPNS_4SpanEj, 
+//GO(_ZN8tcmalloc8PageHeap18RemoveFromFreeListEPNS_4SpanE, 
+//GO(_ZN8tcmalloc8PageHeap19IncrementalScavengeEj, 
+//GO(_ZN8tcmalloc8PageHeap20ReleaseAtLeastNPagesEj, 
+//GO(_ZN8tcmalloc8PageHeap22CheckAndHandlePreMergeEPNS_4SpanES2_, 
+//GO(_ZN8tcmalloc8PageHeap23SearchFreeAndLargeListsEj, 
+//GO(_ZN8tcmalloc8PageHeap3NewEj, 
+//GO(_ZN8tcmalloc8PageHeap5CarveEPNS_4SpanEj, 
+//GO(_ZN8tcmalloc8PageHeap5CheckEv, 
+//GO(_ZN8tcmalloc8PageHeap5SplitEPNS_4SpanEj, 
+//GO(_ZN8tcmalloc8PageHeap6DeleteEPNS_4SpanE, 
+//GO(_ZN8tcmalloc8PageHeap8CheckSetEPSt3setINS_17SpanPtrWithLengthENS_15SpanBestFitLessENS_20STLPageHeapAllocatorIS2_vEEEji, 
+//GO(_ZN8tcmalloc8PageHeap8GrowHeapEj, 
+//GO(_ZN8tcmalloc8PageHeap9CheckListEPNS_4SpanEjji, 
+//GO(_ZN8tcmalloc8PageHeapC1Ev, 
+//GO(_ZN8tcmalloc8PageHeapC2Ev, 
+//GO(_Znaj, 
+//GO(_ZnajRKSt9nothrow_t, 
+//GO(_ZnajSt11align_val_t, 
+//GO(_ZnajSt11align_val_tRKSt9nothrow_t, 
+//GO(_ZNK16ProcMapsIterator5ValidEv, 
+//GO(_ZNK8tcmalloc15StackTraceTable6Bucket8KeyEqualEjRKNS_10StackTraceE, 
+//GO(_Znwj, 
+//GO(_ZnwjRKSt9nothrow_t, 
+//GO(_ZnwjSt11align_val_t, 
+//GO(_ZnwjSt11align_val_tRKSt9nothrow_t, 
+
+//DATAB(tcmalloc_sys_alloc, 
+//DATAB(TCMalloc_SystemTaken, 
+//DATAB(_ZN60FLAG__namespace_do_not_use_directly_use_DECLARE_bool_instead22FLAGS_malloc_skip_mmapE, 
+//DATAB(_ZN60FLAG__namespace_do_not_use_directly_use_DECLARE_bool_instead22FLAGS_malloc_skip_sbrkE, 
+//DATAB(_ZN60FLAG__namespace_do_not_use_directly_use_DECLARE_bool_instead24FLAGS_nomalloc_skip_mmapE, 
+//DATAB(_ZN60FLAG__namespace_do_not_use_directly_use_DECLARE_bool_instead24FLAGS_nomalloc_skip_sbrkE, 
+//DATAB(_ZN60FLAG__namespace_do_not_use_directly_use_DECLARE_bool_instead30FLAGS_memfs_malloc_map_privateE, 
+//DATAB(_ZN60FLAG__namespace_do_not_use_directly_use_DECLARE_bool_instead32FLAGS_memfs_malloc_abort_on_failE, 
+//DATAB(_ZN60FLAG__namespace_do_not_use_directly_use_DECLARE_bool_instead32FLAGS_nomemfs_malloc_map_privateE, 
+//DATAB(_ZN60FLAG__namespace_do_not_use_directly_use_DECLARE_bool_instead34FLAGS_nomemfs_malloc_abort_on_failE, 
+//DATAB(_ZN60FLAG__namespace_do_not_use_directly_use_DECLARE_bool_instead35FLAGS_malloc_disable_memory_releaseE, 
+//DATAB(_ZN60FLAG__namespace_do_not_use_directly_use_DECLARE_bool_instead35FLAGS_memfs_malloc_ignore_mmap_failE, 
+//DATAB(_ZN60FLAG__namespace_do_not_use_directly_use_DECLARE_bool_instead37FLAGS_nomalloc_disable_memory_releaseE, 
+//DATAB(_ZN60FLAG__namespace_do_not_use_directly_use_DECLARE_bool_instead37FLAGS_nomemfs_malloc_ignore_mmap_failE, 
+//DATAB(_ZN61FLAG__namespace_do_not_use_directly_use_DECLARE_int32_instead13FLAGS_verboseE, 
+//DATAB(_ZN61FLAG__namespace_do_not_use_directly_use_DECLARE_int32_instead15FLAGS_noverboseE, 
+//DATAB(_ZN61FLAG__namespace_do_not_use_directly_use_DECLARE_int32_instead25FLAGS_malloc_devmem_limitE, 
+//DATAB(_ZN61FLAG__namespace_do_not_use_directly_use_DECLARE_int32_instead25FLAGS_malloc_devmem_startE, 
+//DATAB(_ZN61FLAG__namespace_do_not_use_directly_use_DECLARE_int32_instead27FLAGS_nomalloc_devmem_limitE, 
+//DATAB(_ZN61FLAG__namespace_do_not_use_directly_use_DECLARE_int32_instead27FLAGS_nomalloc_devmem_startE, 
+//DATAB(_ZN61FLAG__namespace_do_not_use_directly_use_DECLARE_int64_instead27FLAGS_memfs_malloc_limit_mbE, 
+//DATAB(_ZN61FLAG__namespace_do_not_use_directly_use_DECLARE_int64_instead28FLAGS_tcmalloc_heap_limit_mbE, 
+//DATAB(_ZN61FLAG__namespace_do_not_use_directly_use_DECLARE_int64_instead29FLAGS_nomemfs_malloc_limit_mbE, 
+//DATAB(_ZN61FLAG__namespace_do_not_use_directly_use_DECLARE_int64_instead30FLAGS_notcmalloc_heap_limit_mbE, 
+//DATAB(_ZN61FLAG__namespace_do_not_use_directly_use_DECLARE_int64_instead31FLAGS_tcmalloc_sample_parameterE, 
+//DATAB(_ZN61FLAG__namespace_do_not_use_directly_use_DECLARE_int64_instead33FLAGS_notcmalloc_sample_parameterE, 
+//DATAB(_ZN61FLAG__namespace_do_not_use_directly_use_DECLARE_int64_instead43FLAGS_tcmalloc_large_alloc_report_thresholdE, 
+//DATAB(_ZN61FLAG__namespace_do_not_use_directly_use_DECLARE_int64_instead45FLAGS_notcmalloc_large_alloc_report_thresholdE, 
+//DATAB(_ZN62FLAG__namespace_do_not_use_directly_use_DECLARE_double_instead27FLAGS_tcmalloc_release_rateE, 
+//DATAB(_ZN62FLAG__namespace_do_not_use_directly_use_DECLARE_double_instead29FLAGS_notcmalloc_release_rateE, 
+//DATAB(_ZN62FLAG__namespace_do_not_use_directly_use_DECLARE_string_instead21FLAGS_symbolize_pprofB5cxx11E, 
+//DATAB(_ZN62FLAG__namespace_do_not_use_directly_use_DECLARE_string_instead23FLAGS_memfs_malloc_pathB5cxx11E, 
+//DATAB(_ZN62FLAG__namespace_do_not_use_directly_use_DECLARE_string_instead23FLAGS_nosymbolize_pprofE, 
+//DATAB(_ZN62FLAG__namespace_do_not_use_directly_use_DECLARE_string_instead25FLAGS_nomemfs_malloc_pathE, 
+//DATAB(_ZN8tcmalloc11ThreadCache13thread_heaps_E, 
+//DATAB(_ZN8tcmalloc11ThreadCache17threadlocal_data_E, 
+//DATAB(_ZN8tcmalloc11ThreadCache18next_memory_steal_E, 
+//DATAB(_ZN8tcmalloc11ThreadCache18thread_heap_count_E, 
+//DATAB(_ZN8tcmalloc11ThreadCache9heap_key_E, 
+//DATAB(_ZN8tcmalloc21threadcache_allocatorE, 
+//DATAB(_ZN8tcmalloc6Static14pageheap_lock_E, 
+//DATAB(_ZN8tcmalloc6Static7inited_E, 
+
+//GOW(MallocHook_InitAtFirstAllocation_HeapLeakChecker, 
+//GOW(_Z24tc_get_sysalloc_overrideP12SysAllocator, 
+//GOW(_Z7RAW_LOGiPKcz, 
+//GOW(_Z8RAW_VLOGiPKcz, 
+//GOW(_Z9LogPrintfiPKcSt9__va_list, 
+//GOW(_ZN16MmapSysAllocatorD0Ev, 
+//GOW(_ZN16MmapSysAllocatorD1Ev, 
+//GOW(_ZN16MmapSysAllocatorD2Ev, 
+//GOW(_ZN16SbrkSysAllocatorD0Ev, 
+//GOW(_ZN16SbrkSysAllocatorD1Ev, 
+//GOW(_ZN16SbrkSysAllocatorD2Ev, 
+//GOW(_ZN17GoogleInitializerD1Ev, 
+//GOW(_ZN17GoogleInitializerD2Ev, 
+//GOW(_ZN18DevMemSysAllocatorD0Ev, 
+//GOW(_ZN18DevMemSysAllocatorD1Ev, 
+//GOW(_ZN18DevMemSysAllocatorD2Ev, 
+//GOW(_ZN19DefaultSysAllocatorD0Ev, 
+//GOW(_ZN19DefaultSysAllocatorD1Ev, 
+//GOW(_ZN19DefaultSysAllocatorD2Ev, 
+//GOW(_ZN19HugetlbSysAllocatorD0Ev, 
+//GOW(_ZN19HugetlbSysAllocatorD1Ev, 
+//GOW(_ZN19HugetlbSysAllocatorD2Ev, 
+//GOW(_ZN22TCMallocImplementation12GetOwnershipEPKv, 
+//GOW(_ZN22TCMallocImplementation13GetHeapSampleEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE, 
+//GOW(_ZN22TCMallocImplementation14MarkThreadIdleEv, 
+//GOW(_ZN22TCMallocImplementation15ReadStackTracesEPi, 
+//GOW(_ZN22TCMallocImplementation15ReleaseToSystemEj, 
+//GOW(_ZN22TCMallocImplementation16GetFreeListSizesEPSt6vectorIN15MallocExtension12FreeListInfoESaIS2_EE, 
+//GOW(_ZN22TCMallocImplementation18GetNumericPropertyEPKcPj, 
+//GOW(_ZN22TCMallocImplementation18GetSystemAllocatorEv, 
+//GOW(_ZN22TCMallocImplementation18GetThreadCacheSizeEv, 
+//GOW(_ZN22TCMallocImplementation18SetNumericPropertyEPKcj, 
+//GOW(_ZN22TCMallocImplementation18SetSystemAllocatorEP12SysAllocator, 
+//GOW(_ZN22TCMallocImplementation20GetMemoryReleaseRateEv, 
+//GOW(_ZN22TCMallocImplementation20SetMemoryReleaseRateEd, 
+//GOW(_ZN22TCMallocImplementation25MarkThreadTemporarilyIdleEv, 
+//GOW(_ZN22TCMallocImplementation25ReadHeapGrowthStackTracesEv, 
+//GOW(_ZN22TCMallocImplementation6RangesEPvPFvS0_PKN4base11MallocRangeEE, 
+//GOW(_ZN22TCMallocImplementation8GetStatsEPci, 
+//GOW(_ZN22TCMallocImplementationD0Ev, 
+//GOW(_ZN22TCMallocImplementationD1Ev, 
+//GOW(_ZN22TCMallocImplementationD2Ev, 
+//GOW(_ZN4base8internal8HookListIPFvPKvjEE16ExchangeSingularES5_, 
+//GOW(_ZN4base8internal8HookListIPFvPKvjEE18FixupPrivEndLockedEv, 
+//GOW(_ZN4base8internal8HookListIPFvPKvjEE3AddES5_, 
+//GOW(_ZN4base8internal8HookListIPFvPKvjEE6RemoveES5_, 
+//GOW(_ZN8SpinLock4LockEv, 
+//GOW(_ZN8SpinLock6UnlockEv, 
+//GOW(_ZNK4base8internal8HookListIPFvPKvjEE11GetSingularEv, 
+//GOW(_ZNK4base8internal8HookListIPFvPKvjEE5emptyEv, 
+//GOW(_ZNK4base8internal8HookListIPFvPKvjEE8TraverseEPS5_i, 
+//GOW(_ZNSt6vectorIN15MallocExtension12FreeListInfoESaIS1_EE17_M_realloc_insertIJRKS1_EEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_, 
+//GOW(_ZNSt8_Rb_treeIN8tcmalloc17SpanPtrWithLengthES1_St9_IdentityIS1_ENS0_15SpanBestFitLessENS0_20STLPageHeapAllocatorIS1_vEEE16_M_insert_uniqueIS1_EESt4pairISt17_Rb_tree_iteratorIS1_EbEOT_, 
+//GOW(_ZNSt8_Rb_treeIN8tcmalloc17SpanPtrWithLengthES1_St9_IdentityIS1_ENS0_15SpanBestFitLessENS0_20STLPageHeapAllocatorIS1_vEEE8_M_eraseEPSt13_Rb_tree_nodeIS1_E, 
+//GOW(_ZNSt8_Rb_treeIPKvSt4pairIKS1_PKcESt10_Select1stIS6_ESt4lessIS1_ESaIS6_EE24_M_get_insert_unique_posERS3_,