Go プログラムはデフォルトではコア ファイルを生成しないため、GOMAXPROFILES=1 環境変数を設定して有効にする必要があります。コア ファイルにはプログラム ステータス情報が含まれており、プログラムが異常終了したときに生成されます。gdb ツールを使用してレジスタ値、スタック フレーム、メモリ情報を分析し、問題のデバッグと診断に役立てることができます。
コア ファイルは、ディスクに保存される特殊なタイプのファイルで、次の内容が含まれます。レジスタ値、スタックおよびヒープ ポインタ、メモリ マップなど、実行中のプログラムの状態に関する情報。クラッシュや強制終了など、プログラムが異常終了すると、通常、コア ファイルが生成されます。
デフォルトでは、Go プログラムはコア ファイルを作成しません。コア ファイルの生成を有効にするには、プログラムの開始時に GOMAXPROFILES
環境変数を設定する必要があります。
GOMAXPROFILES=1 go run main.go
上記のコマンドは、コア ファイルを core
ファイルに保存します。現在のディレクトリ内。
単純な Go プログラムがあるとします。
package main import ( "fmt" "log" ) func main() { var x int fmt.Println(x) // 未初始化的变量使用 log.Panic("发生了错误") // 调用 Panic 触发异常 }
このプログラムを実行すると、例外が発生し、コア ファイルが生成されます。 gdb ツールを使用してコア ファイルの内容を表示できます:
gdb ./core main
gdb では、次のコマンドを使用してレジスタ値を表示できます:
register
Use 次のコマンドを使用してスタック フレーム情報を表示できます:
bt
次のコマンドを使用してメモリを表示することもできます:
x/96xb 0x12345678
コアファイルは、Go プログラムの例外をデバッグおよび診断するための貴重なツールです。コア ファイルの生成を有効にし、gdb などのツールを使用して分析することで、プログラムの動作を洞察し、問題を特定できます。
以上がGo言語コアファイルの詳しい説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。