コードを実行すると
char* dirPath = (char*) malloc(pathSize); // pathSize is 512 and its pre defined
readlink("/proc/self/exe",dirPath,pathSize); //segfault here
それはセグメンテーション違反です。pathSize の値を増やすか、pathSize の値を 1 つ大きくして readlink に渡してみました。また、/proc/self/exe を別の変数に入れて、それを渡してもうまくいきませんでした。gdbを介してプログラムを実行すると、
Program received signal SIGSEGV, Segmentation fault.
__memmove_avx_unaligned_erms () at ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:384
384 ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S: No such file or directory.
コードは長い間機能しますが、最近壊れました