私は、32GB以上のRAMを使用し、このバングラドの制限を打ち負かすプロセスで、heisenbugをバググライドしようとしています。これはvalgrindを再コンパイルすることによって回避できる任意のものですか、それとも難しいのですか?64ビットアーキテクチャでvalgrindが32 Gbに制限されるのはなぜですか?
9
A
答えて
12
制限は任意で、valgrindを再コンパイルすることで変更できます。
Valgrindは、2レベルの希薄配列を使用してメモリを追跡します。アドレスの16ビットは、アドレス空間の範囲を追跡する第2レベルのマップへのポインタを含む65536エントリテーブルへのインデックス付けに使用されます(通常、32ビットプロセスの場合は2 16バイト= 64KB、32ビットプロセスの場合は64KB、 64ビットプロセス)。したがって、この2レベルのスパース配列によってトラッキングできるメモリの総量は、このチャンクサイズの65536倍です。コードを変更することで、これらのチャンクのサイズを2の大きな累乗に増やすことができます。これは、大部分のチャンクを追跡するために多くのメモリを使用するという代償です。
メーリングリストvalgrindのユーザーに this messageで、ジュリアン・スワードは、32ギガバイトから128ギガバイトに上限を増やす方法について説明します:19
からmemcheck/mc_main.c
変更N_PRIMARY_BITS
で
- に
21
変更
memcheck/mc_main.c
の最後のアサーション:
MAX_PRIMARY_ADDRESS
→4 *(既存の値+ 1) - リーディング1ビットのブロックにおける右端2 '1' のビットをゼロに設定MASK(1/2/4/8)
アサーション、1- 、例えば
MASK(8)
→0xFFFFFFE000000007ULL
Iは
思います
(Addr)0x2000000000ULL - 1
へ(Addr)0x800000000 - 1
からの変更aspacem_maxAddr
coregrind/m_aspacemgr/aspacemgr-linux.c
インチ
更新:前Valgrindの3.9
- 32ギガバイト: Valgrindのに使用できるメモリの最大量は、最近のバージョンでは増加していますValgrind 3.9から3.12
- Valgrindで128 GB 3.13
関連する問題
- 1. 64ビットアーキテクチャの32ビットOS
- 2. 32ビットWindowsでは2 GBの制限がありますか?
- 3. 32ビットアーキテクチャの64ビットオペランドでの操作?
- 4. 64ビットアーキテクチャでオブジェクトヘッダーサイズが倍増したのはなぜですか?
- 5. なぜNode.jsに1.76 GBのメモリ制限がありますか?
- 6. AFNetworking - この64ビットライブラリを32ビットアーキテクチャで簡単に使用できますか?
- 7. 64ビットプラットフォームでsize_typeが32ビット整数になるのはなぜですか?
- 8. 64ビットのウィンドウでのPythonの32ビットメモリの制限
- 9. SetupDiCallClassInstaller関数が64ビットプログラムに制限されているのはなぜですか?
- 10. NSIntegerとiOS上の64ビットアーキテクチャ
- 11. 64ビットアーキテクチャと32ビットインテルアーキテクチャでアプリケーションをどのように実行する必要がありますか?
- 12. CUDAで一定のメモリサイズが制限されるのはなぜですか?
- 13. 64ビットアーキテクチャでのCの問題:pthread_kill()
- 14. ContextThemeWrapperがサポートライブラリグループに制限されているのはなぜですか?
- 15. Sharepoint 2010が.Net 3.5に制限されているのはなぜですか?
- 16. アンドロイドがvmのメモリサイズを任意の24または32 MBに制限するのはなぜですか?
- 17. 64ビットアーキテクチャの最適化
- 18. どのように32ビットIRホールドロード命令ですか?(RISCスタイルの32ビットアーキテクチャ)
- 19. すべての32ビット整数の配列に4 GBが必要なのはなぜですか?
- 20. 64ビットライブラリは4GBに制限されていますか?
- 21. 64ビットアーキテクチャ上のJniのポインタサイズは何ですか
- 22. OS X上のmatplotlibのインストールでは64ビットアーキテクチャはサポートされません
- 23. URLの長さにサーバー側の制限があるのはなぜですか?
- 24. 32ビットアーキテクチャでは、256バイトのメモリユニットにいくつの命令を入れることができますか?
- 25. Valgrindの64ビット版は32ビットプログラムのメモリ問題を掘り起こすことができますか?
- 26. PDOで64ビットから32ビットに変換される整数
- 27. 64ビットと32ビットのUbuntuと低メモリシステム - なぜUbuntu 64ビットが私のRAMを食べるのですか?
- 28. Expression Encoder - ファイルディメンションの制限 - 最小サイズは64 * 64で、4の倍数でなければなりませんか?
- 29. Windows 2008 R2 Webサーバー上の.NET Webアプリケーションは、32 GBではなく16 GB RAMしかアドレス指定できません - なぜですか?
- 30. は、だから私は、ローカルに64ビットのApache/PHPをインストールしたWAMP 64ビットアーキテクチャ
偉大な答え、ありがとう – piotr