簡體   English   中英

為什么不鼓勵使用LD_PRELOAD?

[英]Why is LD_PRELOAD usage discouraged?

我在Google的tcmalloc文檔頁面上遇到了這一建議。

您可以通過使用LD_PRELOAD在未編譯的應用程序中使用TCMalloc:

 $ LD_PRELOAD="/usr/lib/libtcmalloc.so" 

LD_PRELOAD非常棘手,我們不一定推薦這種使用方式。

他們為什么不鼓勵LD_PRELOAD? 是天生有問題嗎? 普通鏈接是否更可靠? 怎么樣?

使用LD_PRELOADtcmalloc實現也將用於任何子進程,而這可能不是您想要的。

除了ysdx的答案外,對於setuid()程序, LD_PRELOAD的值也將被忽略 (出於充分的理由)。

根據用例,這可能是不希望的。 例如,您不能編寫導出LD_PRELOAD並執行實際程序的Shell腳本包裝。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM