| OLD | NEW |
| (Empty) | |
| 1 #include <dlfcn.h> |
| 2 |
| 3 #include "base/base_paths.h" |
| 4 #include "base/debug/stack_trace.h" |
| 5 #include "base/files/file_path.h" |
| 6 #include "base/process/memory.h" |
| 7 |
| 8 #include "base/path_service.h" |
| 9 |
| 10 extern "C" void* tc_malloc(); |
| 11 |
| 12 |
| 13 int main(int argc, char* argv[]) { |
| 14 |
| 15 |
| 16 printf("MAIN malloc: %p\n", &malloc); |
| 17 printf("MAIN tc_malloc: %p\n", &tc_malloc); |
| 18 printf("MAIN free: %p\n", &free); |
| 19 printf("MAIN UncheckedMalloc: %p\n", &base::UncheckedMalloc); |
| 20 |
| 21 base::debug::EnableInProcessStackDumping(); |
| 22 |
| 23 base::FilePath path; |
| 24 base::PathService::Get(base::DIR_EXE, &path); |
| 25 void* haxlib = dlopen(path.Append("libhaxlib.so").value().c_str(), RTLD_LAZY); |
| 26 CHECK(haxlib); |
| 27 |
| 28 using HaxFunc = void (*)(); |
| 29 HaxFunc hax = reinterpret_cast<HaxFunc>(dlsym(haxlib, "Hax")); |
| 30 CHECK(hax); |
| 31 |
| 32 hax(); |
| 33 |
| 34 dlclose(haxlib); |
| 35 return 0; |
| 36 } |
| OLD | NEW |