2009年10月27日

2009年10月27日

 C/C++ のプログラムを Xcode でデバッグしているとき、時々ブレークポイントで止まってからステップ実行がうまくいかないことがある。step とか next で1行だけ実行しようとしても、そのまま止まらずに continue と同じ動作になってしまったり、全然とんちんかんなところで止まったりする。stepi でもだめ。advance N はうまくいったりいかなかったり。C++ から C 関数を呼び出したときに起きやすいようだが、いまいち規則性がつかめていない。その関数から C 関数を呼び出しているとき、その関数の中でブレークポイントで止めた後 finish で元の関数に戻ると、その後は stepnext も正しく動作する(ことが多い。確実に動作するかどうかは自信なし)。Xcode だけでなく、ターミナルから gdb XXXX.app で走らせても同じなので、gdb の問題らしい。gdb と C++ は相性がよくないという話も聞くけど、デバッガが思うように動かないのはすごくストレスがたまるんだよなあ。

タグ:
Posted at 2009年10月27日 22:42:22
email.png