コンパイルはできる、リンクもできる、焼くこともできる、立ち上がって動作することもできている。
なのに、gdbでCソースでバッグができなくなっていたのだ。
以前動いていたのは覚えているのだが、いつそうなったのかがわからない。
症状は、ブレークポイントを設定すると「No source file named xxx.c」みたいなメッセージが出る、だ。
stripされてるわけでもないし、directoryコマンドではパスが通っているし、カレントディレクトリにCソースがある状態でやってるし。
gccのバージョンが関係あるかと思い、とりあえず最新のをインストールしてみたが、同じ。
J-Link Liteも最新版にしたが、同じ。
Eclipseの関連するpluginもupdateしたが、同じ。
じゃあ、arm-none-eabi-gccでやったものがだめなのかというと、そうでもない。
小さなmain.cみたいなのをビルドしてみると、それは大丈夫なのだ。
ということは、少なくともnRF51822のアプリをビルドするという環境で発生することになる。
-gとか、-ggdbとか、-ggdb3とか試したが、同じ。
makefileしかビルドに関係してないので、あれこれ試している最中。
初めてnRF51822を使い始めてから、この手のことで行き詰まったことがなかったため、はたと困っている。
まあ、これで解決できれば、またノウハウも増えるというものだ。
gdbでデバッグしても、BLEの通信が始まってしまうとあまり役に立たない。
だから放置したい気もするのだが・・・。
実は、これに気付いたのは、この記事より前に書いていたネタのせいなのだ。
「simple_uartじゃなくて、app_traceを使おう」みたいな感じのネタだ。
app_traceは便利そうなんだけど、printfを呼んでいるところが気になっている。
何がどうなるのかをデバッガで見ながらやっていくか、と試したときに、あれっ、となったのだ。
トラブルシューティングってのは、結局はトラブルに遭わないとシューティングできないわけなので、よい経験と思うことにしよう(まだ終わってないけど)。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。