Mingw32のリモートデバッグって・・・

  • 投稿日:
  • by
  • カテゴリ:



鬼門なのかしら。


ウィンドウタイトルの調査の続きをしようとしています。ふと見かけたのが以下の解説です。


MinGW クロスデバッグ


http://bitwalk.sitemix.jp/mingw_cross_debug.php


gdbでリモートデバッグする場合、



  • デバッギをターゲット上でgdbserverから起動する

    • 起動済みのデバッギの場合は--attach指定すればよい



  • リモートホストからgdbを起動(リモート指定)


というだけのことです。ソースレベルデバッグをしたいわけですから、



  • デバッギはターゲット上にある

  • ソースはリモートホストにある


ということですね。組み込みのクロス開発では普通のことかと思います。


いまやりたいことはWindows上で動作するXming.exeをUbuntu上でコンパイルしているのですから、



  • ターゲットはWindowsなのでWindows用gdbserverがあればよい

  • デバッガはMingw32対応のgdbがあればよい


ということになると理解しています。


Windows用の(Mingw32の)gdbserverは、http://sourceforge.net/projects/mingw-cross/files/にあるんですが、Mingw32用のgdbがFedora11用のパッケージしかないんですよねぇ。


Ubuntuに無理やり入れたら動くのかなぁ。それともソースパッケージを無理やり入れてコンパイルするのかなぁ。


と悩んでググってみると、そのものずばりは見つからず。例えば、Windows用のinsight.exeをwine上で動かすとか。


Howto - Cross Compiling in Linux using MingW32


http://forums.codeblocks.org/index.php/topic,3343.0.html


Wine上でXming.exeが動けばそれでも構わないんですが。

Windows上にソースを持ってきて、MSYS上でgdbからattachできれば、とりあえずそれでいいですかね。ただそれだと結局トライアンドエラーがめんどうでちっとも進まない気がします。*1

あ~XmingをCygwin上でmakeすりゃいいのか。そうすりゃCygwin上のgdbからattachできるってか。*2

コンパイル時間とクロス&リモートgdb*3の遠回りをするくらいなら、MSYSで一気通貫したいんですが、ひっかかるのは、http://www.freedesktop.org/wiki/Xming/Buildingに、



Compiling


Since I've not setup MinGW I can't tell you if this works. But cross compiling from Cygwin or Linux does work. Check the next section about it.



と書いてあること。


というわけで次のステップはこんな感じ



  • Fedora11用のパッケージをUbuntuにぶちこんでみる

  • Wine上でXmingが動くかな

  • MSYS上でコンパイル&gdbまたはgdbのみチャレンジ

  • 最悪printfデバッグで我慢する


参考リンク:


GDB/GDBserverによるクロスターゲットのリモートデバッグ (3/3)


http://www.itmedia.co.jp/enterprise/articles/0711/30/news095_3.html




*1:とウダウダ言ってるから進まない


*2:Xmingのコンパイルにmakeに半日かかりそうだ。Ubuntu上でも数分かかるのに。そもそもCygwinのgdbからattachできるんか?


*3:リモートgdbはウザイしな