ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
要点
- DMP / コアダンプはプロセスや OS のメモリ状態をクラッシュ時点で丸ごと保存したファイル。事後 (postmortem) 解析に使う。
- Windows は DMP (full / mini / kernel) を WinDbg / Visual Studio で解析。Linux は
coreファイルを gdb で解析。 - Linux で core を出すには
ulimit -c unlimitedとkernel.core_patternの設定が必要。 - 本番では機微情報の漏洩源になりやすく、保管・転送ポリシーが重要。
概要
サーバプロセスやアプリケーションが落ちたとき、ログだけではコールスタックや変数状態が分からないケースは多い。メモリダンプはクラッシュ瞬間のプロセス (または OS) のメモリイメージをディスクへ書き出したファイルで、後からデバッガで読み込んで「どの関数で、どの引数で、どの値を持って落ちたか」を逆引きできる。これを postmortem デバッグと呼び、再現困難なバグや本番限定の不具合を追跡する強力な手段となる。
Windows では .dmp、Linux / macOS / FreeBSD などでは伝統的に core ファイル (拡張子なし or core.<pid>) が使われる。両者は形式が異なるが、目的と運用思想はほぼ同じである。
内部構造
Windows DMP はマイクロソフトの minidump 形式 (MINIDUMP_HEADER 〜 各種ストリーム) でドキュメント化されている。代表的なバリエーションは以下。
- Minidump: スタックと一部メタのみ、数 MB。クラッシュレポート向け。
- Full memory dump: プロセスメモリ全量、サイズは RSS そのまま。
- Kernel memory dump: OS カーネル空間中心。BSOD 解析向け。
- Complete memory dump: 物理メモリ全量。BSOD で全容を取りたいとき。
Linux core は ELF 形式で、PT_NOTE と PT_LOAD セグメントの組み合わせ。プロセスの全マッピングをそのまま吐くため、RSS が 8 GB あれば core も 8 GB になりがちだ。
主な用途
- 稀少クラッシュの解析: 数百万リクエストに 1 回しか起きないバグでも、ダンプを集めれば原因に近づける。
- BSOD (Blue Screen of Death) 調査: ドライバ不具合、ハード故障の特定。
- セキュリティ調査: 攻撃中プロセスのメモリから残存する文字列・鍵を抽出。
- 性能・リーク解析: ヒープ全体を読み込み、オブジェクト数の異常やリーク箇所を可視化。
関連形式との比較
- PCAP: ネットワーク I/O のスナップ、メモリではなく通信を記録。
- ETL (.etl): Windows のイベントトレース。ダンプより軽量で、イベントログ的に時系列を取れる。
- HPROF (.hprof): Java VM のヒープダンプ。Eclipse MAT で解析。
- HAR / ログファイル: 高レベル情報のみで、メモリ状態は含まない。
コマンド・ツール
# Linux: core を出す準備
ulimit -c unlimited
echo "core.%e.%p" | sudo tee /proc/sys/kernel/core_pattern
# 動作中のプロセスからスナップショット
gcore $(pgrep myserver) # core.<pid> ができる
# gdb で読む
gdb /path/to/myserver core.12345
(gdb) bt full
(gdb) info threads
(gdb) thread apply all bt
# Windows: ユーザモードプロセスから dump
procdump -ma myserver.exe out.dmp
# あるいはタスクマネージャ → 右クリック → ダンプファイルの作成
# WinDbg で開いて解析
windbg -z out.dmp
0:000> !analyze -v
0:000> ~* k
# kdump (Linux カーネルパニック時の自動ダンプ)
sudo systemctl enable kdump
# crash ユーティリティで /var/crash/<timestamp>/vmcore を解析
crash vmlinux /var/crash/.../vmcore
注意点
- 機微情報の塊: ダンプにはパスワード・トークン・PII がそのまま残る。SaaS の本番ダンプを社外に送るのは原則 NG。
- サイズ: 数 GB〜数十 GB になることが普通。ディスクが満杯になりサービス停止に至った例多数。書き出し先・ローテーションを設計する。
- シンボル必須: シンボル (PDB / debug info) が無いとスタックが
??ばかりで読めない。ビルド時に symbol server / debuginfod を整備しておく。 - ASLR: アドレスはランダム化されるため、別バイナリで取った core は対応不能。バイナリ + デバッグ情報をペアで保管する。
- 本番採取のオーバヘッド: フルダンプ書き出し中はプロセス停止。SLA に影響する場合はミニダンプや非同期出力 (Windows の
WerFault+ クラッシュレポート集約) を検討。
関連リンク
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページ
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?