プログラムを逆に実行するリバース実行を用いた、gdb によるデバッグ方法を紹介します。 「変数 x が不正な値になっていたが、いつ不正な値になったのか」といった場合のデバッグに便利です。 サンプルプログラム 変数 x の初期値が 0 で、その後 func1() により 1 に変更される、単純なサンプルプログラムを用います。 プログラム終了時から、プログラムを逆に実行し、いつ変数 x が変更されたかを調べます。 「gcc –g gccreverse.c」でビルドしておきます。 #include <stdio.h> int func1(){ return 1;} int main(void){ int x = 0; x = func1(); printf("%d\n",x); return 0;} リバース実行を用いて gdb でデバッグ 1. 「gdb a.out」を実行し、gdb 配下