私はいくつかの天文学の計算を行うための関数群を持つヘッダを構築していますが、この2つの関数を除いて、Debugging terminated.
メッセージNSLog
ステートメントは正しい答えでコンソールに印刷しますが、クラッシュします。何か案は?これらの2つのObjective-C関数はメッセージなしでクラッシュします
float calcTimeJulianCent(float julianDate) {
NSLog(@" -calcTimeJulianCent");
float tCentury = (julianDate - 2451545.0)/36525.0;
NSLog(@" -calculation complete, tCentury = %1.4f", tCentury);
return tCentury;
}
float calcJDFromJulianCent(float tCentury) {
NSLog(@" -calcJDFromJulianCent");
float julianDate = tCentury * 36525.0 + 2451545.0;
NSLog(@" -calculation complete, tCentury = %1.4f", julianDate);
return julianDate;
}
そして、ここでの関数を呼び出す方法です:
- (IBAction)doMath {
NSLog(@"-%@:%s called", [self class], _cmd);
// other calls that work
float julianCentury = calcTimeJulianCent(julianDay);
NSLog(@" -calcTimeJulianCent called: %@", julianCentury);
float backToJulianDate = calcJDFromJulianCent(0.1092);
NSLog(@" -calcJDFromJulianCent called: %@", backToJulianDate);
// more calls that work
}
EDIT:回答 - 愚かな間違い。関数はfloats
を返し、文字列用のNSLogでは%@
を使用しました。あなたは、Xcodeがそれを突破する以上のことをすることができると思います。
デバッガでそれをステップ実行した場合、どのような行クラッシュがで起こるのでしょうか? –
あなたはどのプラットフォームにいますか? GDBを使う? 「デバッグが終了しました」または「デバッガが停止しました」と表示されますか?返品ステータスは印刷されていますか?エラーがこれらの機能の外にあるコードにある可能性がありますか?あなたの機能はまったく復帰しますか? –
これは興味深いことです。私は、これらの関数を呼び出すメソッドにブレークポイントを設定し、それからステップを実行しました。私がそれをするまで、私はすべてのデバッグ情報を得ていませんでした。これで、関数が返ってからクラッシュすることがわかりました。呼び出しがどのように見えるかを表示するための質問の更新... – Steve