2007年6月28日アーカイブ

お仕事で、gdbを使ってクロスプラットフォームのリモートデバッグをやったのでメモ。
gdbについてはマニュアルを見てもらうとして、リモートデバッグの手順を書いてみます。

準備
  • ターゲットマシンと開発ホストがシリアル又はLANで繋がっていること
  • 開発ホストにターゲットマシン用のクロスgdbがインストールされていること
  • ターゲットマシンにgdbserverがインストールされていること
  • 開発ホストにデバッグ対象の実行ファイルとソースがあること(-ggdb つきでコンパイルされていること)
  • ターゲットマシンにデバッグ対象の実行ファイルがあること

手順
  1. ターゲットマシンでデバッグ対象のプログラムとgdbserverを起動する
    • 実行ファイルが直接起動できる場合
    • # gdbserver 0.0.0.0:5555 prog arg...
      
      ※ 5555 の部分は任意のポート番号。(LANの場合。シリアルの場合は、0.0.0.0:5555の代わりにシリアルのデバイスファイル名)
      ※ prog arg... の部分は、デバッグ対象の実行ファイルとコマンドラインパラメータ
    • 実行ファイルが直接起動できない場合
      1. GUI等から実行ファイルを起動する
      2. ps等でデバッグ対象のPIDを調べる
      3. gdbserverを起動する
      4. # gdbserver 0.0.0.0:5555 --attach PID
        
  2. 開発ホストでgdbを起動する
  3. # gdb prog
    
    ※ prog はデバッグ対象のプログラム。gdbはターゲット環境用のもの。
  4. gdb上でリモートデバッグを指示する
  5. (gdb) target remote x.x.x.x:5555
    
    ※ x.x.x.x は ターゲットマシンのIPアドレス。
  6. あとは、普通にgdbとして使えば良い
  7. デバッグをやめるときは detach と入力する。
2007年6月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

このアーカイブについて

このページには、2007年6月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2007年6月15日です。

次のアーカイブは2007年8月17日です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 6.1.1