[解決済み】Visual Studio C++で、メモリ割り当ての表現とは何ですか?
2022-04-05 10:15:49
質問
Visual Studioで、実行中にC++のデバッガで変数を検査する際に、"baadf00d"や"CC"、"CD"を見たことがあると思います。
私の理解では、"CC" は DEBUG モードでは、メモリが new() または alloc() されてユニット化されたときにのみ表示されます。 一方、"CD" は削除されたメモリや解放されたメモリを表します。 RELEASEビルドでは"baadf00d"しか見たことがありません(でも間違っているかもしれません)。
たまに、メモリリークやバッファオーバーフローなどを仕掛ける状況になると、こういった情報が役に立ちます。
デバッグのために、いつ、どのようなモードで、メモリが認識可能なバイトパターンに設定されているのか、どなたか親切に教えていただけませんか?
解決するには?
こちらのリンクに詳細があります。
https://en.wikipedia.org/wiki/Magic_number_(プログラミング)#Debug_values
* 0xABABAB : Microsoft の HeapAlloc() で、ヒープメモリを割り当てた後のガードバイトをマークするために使用されます。 * 0xABADCAFE : この値で起動すると、すべての空きメモリが初期化され、不正なポインタをキャッチできます。 * 0xBAADF00D : Microsoft の LocalAlloc(LMEM_FIXED) が、初期化されていないヒープメモリをマークするために使用します。 * 0xBADCAB1E : デバッガとの接続が切断されたとき、Microsoft eVCデバッガに返されるエラーコード。 * 0xBEEFCACE : Microsoft .NET がリソースファイルのマジックナンバーとして使用する。 * 0xCCCCCC : MicrosoftのC++デバッグランタイムライブラリが、初期化されていないスタックメモリーをマークするために使用します。 * 0xCDCDCD : MicrosoftのC++デバッグ用ランタイムライブラリが、初期化されていないヒープメモリをマークするために使用します。 * 0xDDDDDD : Microsoft の C++ デバッグヒープが、解放されたヒープメモリをマークするために使用します。 * 0xDEADDEAD : Microsoft Windows の STOP エラーコードで、ユーザーが手動でクラッシュを開始したときに使用される。 * 0xFDFDFD : マイクロソフトのC++デバッグヒープが、割り当てられたヒープメモリの前後に、quot; no man's land;ガードバイトをマークするために使用されます。 * 0xFEEEFEEE : マイクロソフトのHeapFree()が、解放されたヒープメモリをマークするために使用します。
関連
-
[解決済み] vshost.exeは何のためにあるのですか?
-
[解決済み] プログラム「[3984] dotnet.exe」がコード -2147450751 (0x80008081) で終了しました。
-
[解決済み] Visual Studioの出力ウィンドウに書き込む
-
[解決済み] Visual Studioでコマンドラインパラメータを使ったデバッグを行う
-
[解決済み] Visual Studioで "stdafx.h "は何に使うのですか?
-
[解決済み] JVMをリモートでデバッグするために設定すべきJavaコマンドラインオプションは何ですか?
-
[解決済み】デバッガでステップインツーとステップオーバーの違いは何ですか?
-
[解決済み】Visual StudioデバッガがToStringオーバーライドの評価を停止する理由は何ですか?
-
[解決済み】Visual Studioがブレークポイントの忘却を拒否?
-
[解決済み】デバッグ開始時にVisual Studioが新しいブラウザウィンドウを起動しないようにするには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Rのデバッグ。"負の添え字と混在できるのは0のみ"
-
[解決済み] コンテンツとともに保存されたchrome network debugger harファイルを表示/再生するにはどうすればよいですか?
-
[解決済み] Elixirで関数の呼び出し元をリストアップする方法は?
-
[解決済み] GDBで特定機能に踏み込む
-
[解決済み] プログラム「[3984] dotnet.exe」がコード -2147450751 (0x80008081) で終了しました。
-
[解決済み] [Solved] 失敗した `docker build` のファイルシステムを検査するにはどうしたらいいですか?
-
[解決済み】Windowsの.exeを「デコンパイル」することは可能ですか?または少なくともアセンブリを表示することはできますか?
-
[解決済み】実行中のJavaプロセスにIntelliJ IDEAのデバッガをアタッチする。
-
[解決済み】拡張機能のbackground.jsのコンソールやdevtoolsにアクセスする。
-
[解決済み] malloc/free/new/deleteでコンパイラがメモリを0xCDや0xDDなどに初期化するのはいつ、なぜですか?