From b4aec32ea0871deaa01bedeb6578161ef9df314e Mon Sep 17 00:00:00 2001 From: DBA_3 <yacine.acheroufkebir@gmail.com> Date: Sun, 12 Jan 2020 23:34:13 +0100 Subject: [PATCH] auto fellation --- main | Bin 57040 -> 48992 bytes main.cpp | 11 +- scene.cpp | 3 +- valgrind-out.txt | 279 ++++++++++++++++++++++------------------------- 4 files changed, 140 insertions(+), 153 deletions(-) diff --git a/main b/main index 1d2e62521110034b338f8b8ba18520952eef127e..84fb31de26fed458958272cc07fdec03f7668242 100755 GIT binary patch literal 48992 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 literal 57040 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 diff --git a/main.cpp b/main.cpp index 7e19a07..fc04096 100644 --- a/main.cpp +++ b/main.cpp @@ -51,13 +51,16 @@ int main() //----------CALCUL ET SAUVEGARDE DE L'IMAGE---------- - std::cout << "Création de l'image..." << std::endl; + std::cout << "Création des images..." << std::endl; std::string filename = "basic_ray_tracing.png"; std::string filename2 = "ray_tracing_reflexion.png"; std::string filename3 = "ray_tracing_shading.png"; - scene.render(width, height, 1080, 1080, nb_shapes, (char *) filename.c_str(),2,false); - scene.render(width, height, 1080, 1080, nb_shapes, (char *) filename2.c_str(),5,false); - scene.render(width, height, 1080, 1080, nb_shapes, (char *) filename3.c_str(),5,true); + scene.render(width, height, 1080, 1080, nb_shapes, (char *) filename.c_str(),1,false); + std::cout<<"l'image est générée dans le fichier "<<filename<<std::endl; + scene.render(width, height, 1080, 1080, nb_shapes, (char *) filename2.c_str(),4,false); + std::cout<<"l'image est générée dans le fichier "<<filename2<<std::endl; + scene.render(width, height, 1080, 1080, nb_shapes, (char *) filename3.c_str(),4,true); + std::cout<<"l'image est générée dans le fichier "<<filename3<<std::endl; std::cout << "Image sauvegardée" << std::endl; //----------LIBERATION DE LA MEMOIRE---------- diff --git a/scene.cpp b/scene.cpp index 78a9e64..14a657a 100644 --- a/scene.cpp +++ b/scene.cpp @@ -78,7 +78,7 @@ void Scene::render(int width, int height, int nb_pixel_row, int nb_pixel_col, in //Mémoire allouée pour une ligne de pixels (rgb => 3 bytes par pixel) png_bytep row = (png_bytep) png_malloc(png_ptr, 3*nb_pixel_row*sizeof(png_byte)); - + ref_max++; float pw = (float) width / (float) nb_pixel_col; //largeur d'un pixel float ph = (float) height / (float) nb_pixel_row; //hauteur d'un pixel float min_dist; @@ -96,6 +96,7 @@ void Scene::render(int width, int height, int nb_pixel_row, int nb_pixel_col, in + for (int i=nb_pixel_col-1; i>=0; i--) //on remplit l'image par le bas à droite { for (int j=0; j<nb_pixel_row; j++) diff --git a/valgrind-out.txt b/valgrind-out.txt index 99c32f2..8783ac2 100644 --- a/valgrind-out.txt +++ b/valgrind-out.txt @@ -1,148 +1,131 @@ -==16282== Memcheck, a memory error detector -==16282== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. -==16282== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info -==16282== Command: ./main -==16282== Parent PID: 16027 -==16282== ---16282-- ---16282-- Valgrind options: ---16282-- --leak-check=full ---16282-- --show-leak-kinds=all ---16282-- --track-origins=yes ---16282-- --verbose ---16282-- --log-file=valgrind-out.txt ---16282-- Contents of /proc/version: ---16282-- Linux version 4.15.0-48-generic (buildd@lgw01-amd64-036) (gcc version 7.3.0 (Ubuntu 7.3.0-16ubuntu3)) #51-Ubuntu SMP Wed Apr 3 08:28:49 UTC 2019 ---16282-- ---16282-- Arch and hwcaps: AMD64, LittleEndian, amd64-cx16-lzcnt-rdtscp-sse3-avx-avx2-bmi ---16282-- Page sizes: currently 4096, max supported 4096 ---16282-- Valgrind library directory: /usr/lib/valgrind ---16282-- Reading syms from /home/acheroufkebir/PAP/pap_ray_tracing_final/main ---16282-- Reading syms from /lib/x86_64-linux-gnu/ld-2.27.so ---16282-- Considering /lib/x86_64-linux-gnu/ld-2.27.so .. ---16282-- .. CRC mismatch (computed 1b7c895e wanted 2943108a) ---16282-- Considering /usr/lib/debug/lib/x86_64-linux-gnu/ld-2.27.so .. ---16282-- .. CRC is valid ---16282-- Reading syms from /usr/lib/valgrind/memcheck-amd64-linux ---16282-- Considering /usr/lib/valgrind/memcheck-amd64-linux .. ---16282-- .. CRC mismatch (computed 41ddb025 wanted 9972f546) ---16282-- object doesn't have a symbol table ---16282-- object doesn't have a dynamic symbol table ---16282-- Scheduler: using generic scheduler lock implementation. ---16282-- Reading suppressions file: /usr/lib/valgrind/default.supp -==16282== embedded gdbserver: reading from /tmp/vgdb-pipe-from-vgdb-to-16282-by-acheroufkebir-on-??? -==16282== embedded gdbserver: writing to /tmp/vgdb-pipe-to-vgdb-from-16282-by-acheroufkebir-on-??? -==16282== embedded gdbserver: shared mem /tmp/vgdb-pipe-shared-mem-vgdb-16282-by-acheroufkebir-on-??? -==16282== -==16282== TO CONTROL THIS PROCESS USING vgdb (which you probably -==16282== don't want to do, unless you know exactly what you're doing, -==16282== or are doing some strange experiment): -==16282== /usr/lib/valgrind/../../bin/vgdb --pid=16282 ...command... -==16282== -==16282== TO DEBUG THIS PROCESS USING GDB: start GDB like this -==16282== /path/to/gdb ./main -==16282== and then give GDB the following command -==16282== target remote | /usr/lib/valgrind/../../bin/vgdb --pid=16282 -==16282== --pid is optional if only one valgrind process is running -==16282== ---16282-- REDIR: 0x401f2f0 (ld-linux-x86-64.so.2:strlen) redirected to 0x580608c1 (???) ---16282-- REDIR: 0x401f0d0 (ld-linux-x86-64.so.2:index) redirected to 0x580608db (???) ---16282-- Reading syms from /usr/lib/valgrind/vgpreload_core-amd64-linux.so ---16282-- Considering /usr/lib/valgrind/vgpreload_core-amd64-linux.so .. ---16282-- .. CRC mismatch (computed 50df1b30 wanted 4800a4cf) ---16282-- object doesn't have a symbol table ---16282-- Reading syms from /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so ---16282-- Considering /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so .. ---16282-- .. CRC mismatch (computed f893b962 wanted 95ee359e) ---16282-- object doesn't have a symbol table -==16282== WARNING: new redirection conflicts with existing -- ignoring it ---16282-- old: 0x0401f2f0 (strlen ) R-> (0000.0) 0x580608c1 ??? ---16282-- new: 0x0401f2f0 (strlen ) R-> (2007.0) 0x04c32db0 strlen ---16282-- REDIR: 0x401d360 (ld-linux-x86-64.so.2:strcmp) redirected to 0x4c33ee0 (strcmp) ---16282-- REDIR: 0x401f830 (ld-linux-x86-64.so.2:mempcpy) redirected to 0x4c374f0 (mempcpy) ---16282-- Reading syms from /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0 ---16282-- object doesn't have a symbol table ---16282-- Reading syms from /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25 ---16282-- object doesn't have a symbol table ---16282-- Reading syms from /lib/x86_64-linux-gnu/libm-2.27.so ---16282-- Considering /lib/x86_64-linux-gnu/libm-2.27.so .. ---16282-- .. CRC mismatch (computed 7feae033 wanted b29b2508) ---16282-- Considering /usr/lib/debug/lib/x86_64-linux-gnu/libm-2.27.so .. ---16282-- .. CRC is valid ---16282-- Reading syms from /lib/x86_64-linux-gnu/libgcc_s.so.1 ---16282-- object doesn't have a symbol table ---16282-- Reading syms from /lib/x86_64-linux-gnu/libc-2.27.so ---16282-- Considering /lib/x86_64-linux-gnu/libc-2.27.so .. ---16282-- .. CRC mismatch (computed b1c74187 wanted 042cc048) ---16282-- Considering /usr/lib/debug/lib/x86_64-linux-gnu/libc-2.27.so .. ---16282-- .. CRC is valid ---16282-- Reading syms from /lib/x86_64-linux-gnu/libz.so.1.2.11 ---16282-- object doesn't have a symbol table ---16282-- REDIR: 0x5a4bc70 (libc.so.6:memmove) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) ---16282-- REDIR: 0x5a4ad40 (libc.so.6:strncpy) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) ---16282-- REDIR: 0x5a4bf50 (libc.so.6:strcasecmp) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) ---16282-- REDIR: 0x5a4a790 (libc.so.6:strcat) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) ---16282-- REDIR: 0x5a4ad70 (libc.so.6:rindex) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) ---16282-- REDIR: 0x5a4d7c0 (libc.so.6:rawmemchr) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) ---16282-- REDIR: 0x5a4bde0 (libc.so.6:mempcpy) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) ---16282-- REDIR: 0x5a4bc10 (libc.so.6:bcmp) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) ---16282-- REDIR: 0x5a4ad00 (libc.so.6:strncmp) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) ---16282-- REDIR: 0x5a4a800 (libc.so.6:strcmp) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) ---16282-- REDIR: 0x5a4bd40 (libc.so.6:memset) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) ---16282-- REDIR: 0x5a690f0 (libc.so.6:wcschr) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) ---16282-- REDIR: 0x5a4aca0 (libc.so.6:strnlen) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) ---16282-- REDIR: 0x5a4a870 (libc.so.6:strcspn) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) ---16282-- REDIR: 0x5a4bfa0 (libc.so.6:strncasecmp) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) ---16282-- REDIR: 0x5a4a840 (libc.so.6:strcpy) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) ---16282-- REDIR: 0x5a4c0e0 (libc.so.6:memcpy@@GLIBC_2.14) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) ---16282-- REDIR: 0x5a4ada0 (libc.so.6:strpbrk) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) ---16282-- REDIR: 0x5a4a7c0 (libc.so.6:index) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) ---16282-- REDIR: 0x5a4ac70 (libc.so.6:strlen) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) ---16282-- REDIR: 0x5a556c0 (libc.so.6:memrchr) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) ---16282-- REDIR: 0x5a4bff0 (libc.so.6:strcasecmp_l) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) ---16282-- REDIR: 0x5a4bbe0 (libc.so.6:memchr) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) ---16282-- REDIR: 0x5a69eb0 (libc.so.6:wcslen) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) ---16282-- REDIR: 0x5a4b050 (libc.so.6:strspn) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) ---16282-- REDIR: 0x5a4bf20 (libc.so.6:stpncpy) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) ---16282-- REDIR: 0x5a4bef0 (libc.so.6:stpcpy) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) ---16282-- REDIR: 0x5a4d7f0 (libc.so.6:strchrnul) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) ---16282-- REDIR: 0x5a4c040 (libc.so.6:strncasecmp_l) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) ---16282-- REDIR: 0x5ade8a0 (libc.so.6:__memcpy_chk) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) ---16282-- REDIR: 0x5b3b3c0 (libc.so.6:__strrchr_avx2) redirected to 0x4c32730 (rindex) ---16282-- REDIR: 0x5a44070 (libc.so.6:malloc) redirected to 0x4c2faa0 (malloc) ---16282-- REDIR: 0x5b3b590 (libc.so.6:__strlen_avx2) redirected to 0x4c32cf0 (strlen) ---16282-- REDIR: 0x5b37ba0 (libc.so.6:__memcmp_avx2_movbe) redirected to 0x4c35e00 (bcmp) ---16282-- REDIR: 0x5b16d60 (libc.so.6:__strcmp_ssse3) redirected to 0x4c33da0 (strcmp) ---16282-- REDIR: 0x5101190 (libstdc++.so.6:operator new(unsigned long)) redirected to 0x4c30110 (operator new(unsigned long)) ---16282-- REDIR: 0x5b3bad0 (libc.so.6:__memcpy_avx_unaligned_erms) redirected to 0x4c366e0 (memmove) ---16282-- REDIR: 0x5a4b590 (libc.so.6:__GI_strstr) redirected to 0x4c37760 (__strstr_sse2) ---16282-- REDIR: 0x5b3bab0 (libc.so.6:__mempcpy_avx_unaligned_erms) redirected to 0x4c37130 (mempcpy) ---16282-- REDIR: 0x50ff2e0 (libstdc++.so.6:operator delete(void*)) redirected to 0x4c311d0 (operator delete(void*)) ---16282-- REDIR: 0x5b3bf50 (libc.so.6:__memset_avx2_unaligned_erms) redirected to 0x4c365d0 (memset) ---16282-- REDIR: 0x5a44950 (libc.so.6:free) redirected to 0x4c30cd0 (free) ---16282-- REDIR: 0x50ff310 (libstdc++.so.6:operator delete[](void*)) redirected to 0x4c316d0 (operator delete[](void*)) -==16282== Mismatched free() / delete / delete [] -==16282== at 0x4C3173B: operator delete[](void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) -==16282== by 0x10F4CB: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main) -==16282== Address 0x5fccc80 is 0 bytes inside a block of size 48 alloc'd -==16282== at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) -==16282== by 0x10EC86: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main) -==16282== -==16282== -==16282== HEAP SUMMARY: -==16282== in use at exit: 0 bytes in 0 blocks -==16282== total heap usage: 858 allocs, 858 frees, 560,582 bytes allocated -==16282== -==16282== All heap blocks were freed -- no leaks are possible -==16282== -==16282== ERROR SUMMARY: 8 errors from 1 contexts (suppressed: 0 from 0) -==16282== -==16282== 8 errors in context 1 of 1: -==16282== Mismatched free() / delete / delete [] -==16282== at 0x4C3173B: operator delete[](void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) -==16282== by 0x10F4CB: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main) -==16282== Address 0x5fccc80 is 0 bytes inside a block of size 48 alloc'd -==16282== at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) -==16282== by 0x10EC86: main (in /home/acheroufkebir/PAP/pap_ray_tracing_final/main) -==16282== -==16282== ERROR SUMMARY: 8 errors from 1 contexts (suppressed: 0 from 0) +==18910== Memcheck, a memory error detector +==18910== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. +==18910== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info +==18910== Command: ./main +==18910== Parent PID: 16027 +==18910== +--18910-- +--18910-- Valgrind options: +--18910-- --leak-check=full +--18910-- --show-leak-kinds=all +--18910-- --track-origins=yes +--18910-- --verbose +--18910-- --log-file=valgrind-out.txt +--18910-- Contents of /proc/version: +--18910-- Linux version 4.15.0-48-generic (buildd@lgw01-amd64-036) (gcc version 7.3.0 (Ubuntu 7.3.0-16ubuntu3)) #51-Ubuntu SMP Wed Apr 3 08:28:49 UTC 2019 +--18910-- +--18910-- Arch and hwcaps: AMD64, LittleEndian, amd64-cx16-lzcnt-rdtscp-sse3-avx-avx2-bmi +--18910-- Page sizes: currently 4096, max supported 4096 +--18910-- Valgrind library directory: /usr/lib/valgrind +--18910-- Reading syms from /home/acheroufkebir/PAP/pap_ray_tracing_final/main +--18910-- Reading syms from /lib/x86_64-linux-gnu/ld-2.27.so +--18910-- Considering /lib/x86_64-linux-gnu/ld-2.27.so .. +--18910-- .. CRC mismatch (computed 1b7c895e wanted 2943108a) +--18910-- Considering /usr/lib/debug/lib/x86_64-linux-gnu/ld-2.27.so .. +--18910-- .. CRC is valid +--18910-- Reading syms from /usr/lib/valgrind/memcheck-amd64-linux +--18910-- Considering /usr/lib/valgrind/memcheck-amd64-linux .. +--18910-- .. CRC mismatch (computed 41ddb025 wanted 9972f546) +--18910-- object doesn't have a symbol table +--18910-- object doesn't have a dynamic symbol table +--18910-- Scheduler: using generic scheduler lock implementation. +--18910-- Reading suppressions file: /usr/lib/valgrind/default.supp +==18910== embedded gdbserver: reading from /tmp/vgdb-pipe-from-vgdb-to-18910-by-acheroufkebir-on-??? +==18910== embedded gdbserver: writing to /tmp/vgdb-pipe-to-vgdb-from-18910-by-acheroufkebir-on-??? +==18910== embedded gdbserver: shared mem /tmp/vgdb-pipe-shared-mem-vgdb-18910-by-acheroufkebir-on-??? +==18910== +==18910== TO CONTROL THIS PROCESS USING vgdb (which you probably +==18910== don't want to do, unless you know exactly what you're doing, +==18910== or are doing some strange experiment): +==18910== /usr/lib/valgrind/../../bin/vgdb --pid=18910 ...command... +==18910== +==18910== TO DEBUG THIS PROCESS USING GDB: start GDB like this +==18910== /path/to/gdb ./main +==18910== and then give GDB the following command +==18910== target remote | /usr/lib/valgrind/../../bin/vgdb --pid=18910 +==18910== --pid is optional if only one valgrind process is running +==18910== +--18910-- REDIR: 0x401f2f0 (ld-linux-x86-64.so.2:strlen) redirected to 0x580608c1 (???) +--18910-- REDIR: 0x401f0d0 (ld-linux-x86-64.so.2:index) redirected to 0x580608db (???) +--18910-- Reading syms from /usr/lib/valgrind/vgpreload_core-amd64-linux.so +--18910-- Considering /usr/lib/valgrind/vgpreload_core-amd64-linux.so .. +--18910-- .. CRC mismatch (computed 50df1b30 wanted 4800a4cf) +--18910-- object doesn't have a symbol table +--18910-- Reading syms from /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so +--18910-- Considering /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so .. +--18910-- .. CRC mismatch (computed f893b962 wanted 95ee359e) +--18910-- object doesn't have a symbol table +==18910== WARNING: new redirection conflicts with existing -- ignoring it +--18910-- old: 0x0401f2f0 (strlen ) R-> (0000.0) 0x580608c1 ??? +--18910-- new: 0x0401f2f0 (strlen ) R-> (2007.0) 0x04c32db0 strlen +--18910-- REDIR: 0x401d360 (ld-linux-x86-64.so.2:strcmp) redirected to 0x4c33ee0 (strcmp) +--18910-- REDIR: 0x401f830 (ld-linux-x86-64.so.2:mempcpy) redirected to 0x4c374f0 (mempcpy) +--18910-- Reading syms from /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0 +--18910-- object doesn't have a symbol table +--18910-- Reading syms from /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25 +--18910-- object doesn't have a symbol table +--18910-- Reading syms from /lib/x86_64-linux-gnu/libm-2.27.so +--18910-- Considering /lib/x86_64-linux-gnu/libm-2.27.so .. +--18910-- .. CRC mismatch (computed 7feae033 wanted b29b2508) +--18910-- Considering /usr/lib/debug/lib/x86_64-linux-gnu/libm-2.27.so .. +--18910-- .. CRC is valid +--18910-- Reading syms from /lib/x86_64-linux-gnu/libgcc_s.so.1 +--18910-- object doesn't have a symbol table +--18910-- Reading syms from /lib/x86_64-linux-gnu/libc-2.27.so +--18910-- Considering /lib/x86_64-linux-gnu/libc-2.27.so .. +--18910-- .. CRC mismatch (computed b1c74187 wanted 042cc048) +--18910-- Considering /usr/lib/debug/lib/x86_64-linux-gnu/libc-2.27.so .. +--18910-- .. CRC is valid +--18910-- Reading syms from /lib/x86_64-linux-gnu/libz.so.1.2.11 +--18910-- object doesn't have a symbol table +--18910-- REDIR: 0x5a4bc70 (libc.so.6:memmove) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--18910-- REDIR: 0x5a4ad40 (libc.so.6:strncpy) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--18910-- REDIR: 0x5a4bf50 (libc.so.6:strcasecmp) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--18910-- REDIR: 0x5a4a790 (libc.so.6:strcat) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--18910-- REDIR: 0x5a4ad70 (libc.so.6:rindex) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--18910-- REDIR: 0x5a4d7c0 (libc.so.6:rawmemchr) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--18910-- REDIR: 0x5a4bde0 (libc.so.6:mempcpy) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--18910-- REDIR: 0x5a4bc10 (libc.so.6:bcmp) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--18910-- REDIR: 0x5a4ad00 (libc.so.6:strncmp) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--18910-- REDIR: 0x5a4a800 (libc.so.6:strcmp) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--18910-- REDIR: 0x5a4bd40 (libc.so.6:memset) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--18910-- REDIR: 0x5a690f0 (libc.so.6:wcschr) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--18910-- REDIR: 0x5a4aca0 (libc.so.6:strnlen) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--18910-- REDIR: 0x5a4a870 (libc.so.6:strcspn) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--18910-- REDIR: 0x5a4bfa0 (libc.so.6:strncasecmp) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--18910-- REDIR: 0x5a4a840 (libc.so.6:strcpy) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--18910-- REDIR: 0x5a4c0e0 (libc.so.6:memcpy@@GLIBC_2.14) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--18910-- REDIR: 0x5a4ada0 (libc.so.6:strpbrk) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--18910-- REDIR: 0x5a4a7c0 (libc.so.6:index) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--18910-- REDIR: 0x5a4ac70 (libc.so.6:strlen) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--18910-- REDIR: 0x5a556c0 (libc.so.6:memrchr) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--18910-- REDIR: 0x5a4bff0 (libc.so.6:strcasecmp_l) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--18910-- REDIR: 0x5a4bbe0 (libc.so.6:memchr) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--18910-- REDIR: 0x5a69eb0 (libc.so.6:wcslen) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--18910-- REDIR: 0x5a4b050 (libc.so.6:strspn) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--18910-- REDIR: 0x5a4bf20 (libc.so.6:stpncpy) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--18910-- REDIR: 0x5a4bef0 (libc.so.6:stpcpy) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--18910-- REDIR: 0x5a4d7f0 (libc.so.6:strchrnul) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--18910-- REDIR: 0x5a4c040 (libc.so.6:strncasecmp_l) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--18910-- REDIR: 0x5ade8a0 (libc.so.6:__memcpy_chk) redirected to 0x4a2a6e0 (_vgnU_ifunc_wrapper) +--18910-- REDIR: 0x5b3b3c0 (libc.so.6:__strrchr_avx2) redirected to 0x4c32730 (rindex) +--18910-- REDIR: 0x5a44070 (libc.so.6:malloc) redirected to 0x4c2faa0 (malloc) +--18910-- REDIR: 0x5b3b590 (libc.so.6:__strlen_avx2) redirected to 0x4c32cf0 (strlen) +--18910-- REDIR: 0x5b37ba0 (libc.so.6:__memcmp_avx2_movbe) redirected to 0x4c35e00 (bcmp) +--18910-- REDIR: 0x5b16d60 (libc.so.6:__strcmp_ssse3) redirected to 0x4c33da0 (strcmp) +--18910-- REDIR: 0x5101190 (libstdc++.so.6:operator new(unsigned long)) redirected to 0x4c30110 (operator new(unsigned long)) +--18910-- REDIR: 0x5b3bad0 (libc.so.6:__memcpy_avx_unaligned_erms) redirected to 0x4c366e0 (memmove) +--18910-- REDIR: 0x5a4b590 (libc.so.6:__GI_strstr) redirected to 0x4c37760 (__strstr_sse2) +--18910-- REDIR: 0x5b3bab0 (libc.so.6:__mempcpy_avx_unaligned_erms) redirected to 0x4c37130 (mempcpy) +--18910-- REDIR: 0x50ff2e0 (libstdc++.so.6:operator delete(void*)) redirected to 0x4c311d0 (operator delete(void*)) +--18910-- REDIR: 0x5b3bf50 (libc.so.6:__memset_avx2_unaligned_erms) redirected to 0x4c365d0 (memset) +--18910-- REDIR: 0x5a44950 (libc.so.6:free) redirected to 0x4c30cd0 (free) +==18910== +==18910== HEAP SUMMARY: +==18910== in use at exit: 0 bytes in 0 blocks +==18910== total heap usage: 1,258 allocs, 1,258 frees, 570,182 bytes allocated +==18910== +==18910== All heap blocks were freed -- no leaks are possible +==18910== +==18910== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) +==18910== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) -- GitLab