MITOUJTAGのICEにソースコードデバッグを乗せたい
MITOUJTAGのICEにソースコードデバッグ機能を乗せる作業を開始しました。
これをやるには、C言語ソースの何行目がどのアドレスに配置されるかという情報が必要なのですが、その情報はELFファイルの.debug_lineというセクションに格納されています。
どのソースの何行目がどのアドレスか、という情報はとても巨大なサイズになるので、ELFファイルの中ではdwarfという奇怪な言語を使って略記しているようです。行番号とアドレスの対応は、.debug_lineの中身にあるのですが、これを解読するのは大変なので、とりあえずはrx-elf-objdumpにデコード結果を吐かせて、取り込むことにしました。
上の図はそのようにして得られた、アドレスと元のソースの行番号の組から、ステップ実行で止まった際に、元のソースでどの行かを表示するようにしたものです。
ここから先は、結構大変です。
DWARFの解析も大変ですが、本格的にやるなら多機能なテキストビューワから作らなければなりません。
| 固定リンク
コメント
なひたふ様へ
お世話になります。
そう言えばInterface誌でも昔、リンカの連載をしてましたね。(だけど、私は中身を読んでいません。)
機能としては、他社が持っている機能はほとんど必要でしょう。
それを実現しようとするならば、多機能なテキストビュアが必要というのは同感です。
ところで一つ教えて下さい。
ルネサスE1では設定を変えればGNU ELFを読み込んでデバッグできないのでしょうか?。
もしできないのであれば、貴殿がやられている事は非常に意味があります。
この事は私から言うと買い方、貴殿からは今後のJTAGデバッガーの売り方にも左右しかねない事柄だと存じます。
よってお教え下さい。
投稿: ケンちゃん | 2011.05.31 21:37
こんばんは
>ルネサスE1では設定を変えればGNU ELFを読み込んでデバッグできないのでしょうか?。
できると思いますよ。
>もしできないのであれば、貴殿がやられている事は非常に意味があります。
>この事は私から言うと買い方、貴殿からは今後のJTAGデバッガーの売り方にも左右しかねない事柄だと存じます。
おっしゃっていることの意味が分かりかねますが。
私は、当社の製品を気に入っていただけない方に無理に勧めたりはしません。気に入っていただいた方のみにお買い上げいただければ、それで十分嬉しいです。
価値観は人それぞれ。意味があると感じるかどうかは人それぞれです。
ルネサスE1を選んだほうがいいと思いますよ。
投稿: なひたふ | 2011.05.31 22:19
なひたぶ様へ
お世話になります。
ご回答有難うございます。
貴殿が「意味がわかりません」と言うのは当然です。
すみません。説明不足でした。
RX62Nでの案件が出てきて待っていられなくなったというのが実情です。
先の文面では大変失礼な内容があったと存じますので、深く陳謝致します。
投稿: ケンちゃん | 2011.06.01 08:47