私のプログラムのbssセクションのメモリを実行したテストでは、何か書き込む前に常にゼロに初期化されています。これは偶然ですか、システムがこれらのメモリページを私に渡す前に「クリーニング」していますか?私はUbuntu上でnasmアセンブラを使用しています(おそらくそれが違いになります)。Linuxアセンブリ。 bssセクションのメモリが0に初期化されていますか?
答えて
アプリケーションの実行可能ファイル(ELF)は、起動時にBSSセクションのサイズ情報を持ち、カーネルがBSSセクションのメモリブロックを割り当て、0にクリーンアップします。これはABI(Application Binary Interface)あなたは別のマシンで異なることを心配する必要はありません。
はいBSSはゼロに初期化されます。
標準的な*(小文字の意味)*の参照がありますか? –
まあ、gccの人は、0に初期化された変数はBSSに置かれているので、BSSをゼロに初期化する必要があります。 – lijie
@ T.J.Crowder、@Huang F. Leiの答えを使って、これに関するリファレンスが見つかりました。リファレンスはLinux Standard Baseです。具体的には、次のページを参照してください:http://refspecs.linux-foundation.org/LSB_4.0.0/LSB-Core-generic/LSB-Core-generic/specialsections.html – kasterma
- 1. 非.bss非初期化データセクション
- 2. intは常に0に初期化されていますか?
- 3. 初期化された配列と初期化されていない配列が占めるメモリの見方
- 4. C++の初期化されていないメモリ割り当て
- 5. 初期化されていないローカル変数が実際に初期化されていますか?
- 6. Javascript型の配列は0に初期化されていますか?
- 7. 構成セクションの設定が初期化されていません
- 8. 初期化されていなくてもメモリ内のNSManagedObject
- 9. Notice:初期化されていない文字列オフセット:0
- 10. 初期化されたグローバルと初期化されていないグローバルに異なるセクションがあるのはなぜですか?
- 11. Cでは、なぜ0に初期化された変数は "nm"で初期化されていないと報告されますか?
- 12. 初期化されていないオブジェクトvs NULLに初期化されたオブジェクト
- 13. 初期化されていない値は初期化されていますか?
- 14. mremapは成長の際にメモリを "初期化"しますか?
- 15. データセクションとCのbssセクションの違い
- 16. MSVC2015は初期化されていないクラスメンバーを初期化する
- 17. initWithCoderで初期化されたメモリがdrawViewで失われる
- 18. C++:メンバポインタが初期化されていますか?
- 19. forループの初期化がネストされていませんか?
- 20. 初期化の前にメモリにロードされたSwiftプロパティ
- 21. MSVCで.bssに初期化されていないデータを格納するにはどうすればよいですか?
- 22. 角2リーフレット:マップコンテナが既に初期化されています
- 23. セクションBSSおよびそれらをメモリ上にロードする。ここ
- 24. 初期化されていないグローバル変数はどこで初期化されますか?
- 25. なぜ初期化されていないグローバル変数を追加してもsizeコマンドで表示されるbss値が増加しないのですか?
- 26. java.lang.IllegalStateException:暗号化が初期化されていません
- 27. openglステンシルバッファがゼロで初期化されていませんか?
- 28. アクセス - データプロバイダが初期化されていませんか?
- 29. ローカル変数が初期化されていませんか?
- 30. が0 C++ 0にすべての値を初期化するために、アレイ
ありがとう、あなたの答えを使って:http://refspecs.linux-foundation.org/LSB_4.0.0/LSB-Core-generic/LSB-Core-generic/specialsections.html Linuxシステムでは、これはLinux標準ベースで指定されたように見えます。 – kasterma