diff -ur malt-master/src/lib/core/StackSizeTracker.cpp malt32/src/lib/core/StackSizeTracker.cpp --- malt-master/src/lib/core/StackSizeTracker.cpp 2019-09-10 19:27:29.000000000 +0300 +++ malt32/src/lib/core/StackSizeTracker.cpp 2020-03-04 11:19:46.000000000 +0200 @@ -36,8 +36,8 @@ unsigned long crsp; //read counters - asm("movq %%rbp,%0" : "=r"(crbp)); - asm("movq %%rsp,%0" : "=r"(crsp)); + asm("mov %%ebp,%0" : "=r"(crbp)); + asm("mov %%esp,%0" : "=r"(crsp)); //push this->stack.push_back(crsp); diff -ur malt-master/src/lib/profiler/AllocStackProfiler.cpp malt32/src/lib/profiler/AllocStackProfiler.cpp --- malt-master/src/lib/profiler/AllocStackProfiler.cpp 2019-09-10 19:27:29.000000000 +0300 +++ malt32/src/lib/profiler/AllocStackProfiler.cpp 2020-03-04 12:29:53.000000000 +0200 @@ -793,8 +793,10 @@ fprintf(stderr,"MALT: Already seen 10M memory operations, MALT certainly slows your program.\n"); else if (sharedLinearIndex == 1000000000) fprintf(stderr,"MALT: Already seen 1G memory operations, MALT certainly slows your program.\n"); +#if 0 else if (sharedLinearIndex == 100000000000) fprintf(stderr,"MALT: Already seen 100G memory operations, MALT certainly slows your program.\n"); +#endif } /******************* FUNCTION *********************/ diff -ur malt-master/src/lib/tools/ELFReader.cpp malt32/src/lib/tools/ELFReader.cpp --- malt-master/src/lib/tools/ELFReader.cpp 2019-09-10 19:27:29.000000000 +0300 +++ malt32/src/lib/tools/ELFReader.cpp 2020-03-04 14:22:36.197386659 +0200 @@ -155,7 +155,7 @@ assert(elf != NULL); //extract header - Elf64_Ehdr * header = elf64_getehdr(elf); + Elf32_Ehdr * header = elf32_getehdr(elf); assert(header != NULL); //get sec number @@ -168,7 +168,7 @@ //get section Elf_Scn * sec = elf_getscn(elf,s); assert(sec != NULL); - Elf64_Shdr * secHeader = elf64_getshdr(sec); + Elf32_Shdr * secHeader = elf32_getshdr(sec); assert(secHeader != NULL); //check type @@ -198,18 +198,18 @@ assert(sec != NULL); //check header - Elf64_Shdr * secHeader = elf64_getshdr(sec); + Elf32_Shdr * secHeader = elf32_getshdr(sec); assert(secHeader != NULL); assert(secHeader->sh_type == SHT_SYMTAB || secHeader->sh_type == SHT_DYNSYM); //check entry type - assert(secHeader->sh_entsize == sizeof(Elf64_Sym)); + assert(secHeader->sh_entsize == sizeof(Elf32_Sym)); assert(secHeader->sh_size % secHeader->sh_entsize == 0); //load Elf_Data * data = elf_getdata(sec,NULL); assert(data != NULL); - Elf64_Sym * table = (Elf64_Sym*)data->d_buf; + Elf32_Sym * table = (Elf32_Sym*)data->d_buf; assert((Elf_Data*)table != NULL); //count symbols @@ -227,8 +227,8 @@ if (table[i].st_name != 0) { //extract types - int bind = ELF64_ST_BIND(table[i].st_info); - int type = ELF64_ST_TYPE(table[i].st_info); + int bind = ELF32_ST_BIND(table[i].st_info); + int type = ELF32_ST_TYPE(table[i].st_info); //check type, only extract global and tls if ((type == STT_OBJECT || type == STT_TLS) && (bind == STB_LOCAL || bind == STB_GLOBAL) && table[i].st_size > 0) @@ -258,7 +258,7 @@ //get section Elf_Scn * sec = elf_getscn(elf,secId); assert(sec != NULL); - Elf64_Shdr * secHeader = elf64_getshdr(sec); + Elf32_Shdr * secHeader = elf32_getshdr(sec); assert(secHeader != NULL); //check kind diff -ur malt-master/src/lib/wrapper/AllocWrapper.cpp malt32/src/lib/wrapper/AllocWrapper.cpp --- malt-master/src/lib/wrapper/AllocWrapper.cpp 2019-09-10 19:27:29.000000000 +0300 +++ malt32/src/lib/wrapper/AllocWrapper.cpp 2020-03-04 12:21:54.000000000 +0200 @@ -135,7 +135,7 @@ **/ MALT::StaticMutex lock; /** Pointer to the old (glibc) malloc symbol. **/ - MallocFuncPtr malloc; + ::MallocFuncPtr malloc; /** Pointer to the old (glibc) free symbol. **/ FreeFuncPtr free; /** Pointer to the old (glibc) calloc symbol. **/ @@ -398,7 +398,7 @@ //search addresses gblState.mmap = (MmapFuncPtr)dlsym(RTLD_NEXT,"mmap"); gblState.munmap = (MunmapFuncPtr)dlsym(RTLD_NEXT,"munmap"); - gblState.malloc = (MallocFuncPtr)dlsym(RTLD_NEXT,"malloc"); + gblState.malloc = (::MallocFuncPtr)dlsym(RTLD_NEXT,"malloc"); gblState.free = (FreeFuncPtr)dlsym(RTLD_NEXT,"free"); gblState.calloc = (CallocFuncPtr)dlsym(RTLD_NEXT,"calloc"); gblState.realloc = (ReallocFuncPtr)dlsym(RTLD_NEXT,"realloc");