ブレークポイントで止まらない理由
検索すると沢山ヒットする「オレンジ色のブレークポイント」の話ではありません。(Objective-Cではない)C言語で開発している場合に、ハマった時の話です。
以下のように、メインプログラムの中で別のソースファイル(ここではfoo.c)に定義された関数を呼び出したい場合、そのヘッダファイル(foo.h)をインポートしておき、ビルド時にはそれぞれ(foo.c,main.c)をコンパイルした後にリンクする、という手順を踏みます(と言ってもXcodeは全自動でやってくれるのですが)。
main.c
#import "foo.h"
int main(int argc,char *argv[]){
foo();
}
上記が”正しい”やり方ですが、foo.cに関数を追加するとfoo.hも同時に修正が必要で面倒だったので、以下のようにヘッダファイルを介さず、直接foo.cをインポートしました。
main.c
#import "foo.c"
int main(int argc,char *argv[]){
foo();
}
この場合、そのままビルドするとfoo.cの関数が二重にリンクされるためエラーになるのですが、Xcodeの設定で、foo.cをコンパイル対象から外してやるとmain.cにインポートされている分だけがビルドされるので、(ビルドは)うまくいきます。しかしここからが問題で、この状態だと、foo.cに設定したブレークポイントが効かなくなってしまいます。これもXcode側の設定で何とかなるかなぁ、と色々探してみたのですが見つけきれませんでした。というわけで、やっぱり行儀良くヘッダファイルをインポートしましょう、という結論に至っています。
参考URL
この記事は役に立ちましたか?
- EnglishWorm.com
- SinglesFan.com
- LmLab.net
- サイトマップ
- 運営者について