當使用 LD_PRELOAD 預先載入 clang AddressSanitizer 函式庫時,為什麼 pgrep 會掛起?

當使用 LD_PRELOAD 預先載入 clang AddressSanitizer 函式庫時,為什麼 pgrep 會掛起?

我注意到當我設定 LD_PRELOAD 環境時。變數 libclang_rt.asan-x86_64.so pgrep 掛起。

為什麼會發生這種情況以及如何避免這種情況?

senx:/$ time pgrep anything

real    0m0,022s
user    0m0,001s
sys     0m0,020s
senx:/$ export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libasan.so.4
senx:/$ time pgrep anything

real    0m0,076s
user    0m0,033s
sys     0m0,027s
senx:/$ export LD_PRELOAD=/usr/lib/llvm-10/lib/clang/10.0.0/lib/linux/libclang_rt.asan-x86_64.so 
senx:/$ time pgrep anything
^C

real    0m33,077s
user    0m0,010s
sys     0m0,010s

相關內容