GNU/Linux >> Linux の 問題 >  >> Linux

共有ライブラリの境界を越えたメモリの割り当てと割り当て解除

Glibc またはその他の「通常の」アロケータ (jemalloc、tcmalloc など) を使用している限り、ヒープ状態はすべてのライブラリで共有されるため、07

理論的には、これを回避できる可能性があります。たとえば、一部のライブラリは 16 のカスタム実装にリンクされている場合があります /24 (シンボル スクリプトによる 38 のトリック ) には独自のプライベート ヒープがあるため、プログラムの他の部分とうまくやり取りできません。しかし、実生活でこのようなものを見たことはありません.

STL コンテナは 46 に基づいています /54 そのため、ライブラリの境界を越えてそれらを渡したり変更したりすることも可能です。もちろん、さまざまなライブラリーがさまざまなコンパイラーやさまざまな非互換バージョンの STL (libstdc++、libcxx など) でコンパイルされる可能性がありますが、それらの C++ コンテナーの型は異なり、コンパイラーは互換性のないモジュール間でそれらを渡すことを単に許可しません。


Linux
  1. Linuxでメモリバッファとキャッシュを削除する方法

  2. Linux – Linuxのメモリ使用量を正しく判断しますか?

  3. MemとVmemについて?

  1. メモリの監視と管理

  2. スレッドとファイル記述子

  3. tmpfs の使用とサイズ変更

  1. _path_filesおよびCompaddIgnore-filesパラメーター?

  2. Linux メモリ管理 – スワッピング、キャッシュ、および共有 VM

  3. rkhunter:疑わしい共有メモリ セグメント