Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

Linux プラットフォームでのデバッグ

Linux® システムで使用できる GNU® デバッガー gdb には、ブレークポイントの設定、変数の調査、およびソース コードの行単位実行機能を含む、ソース コードの完全なデバッグ機能が用意されています。

この手順では、MATLAB® コマンドの前に MATLAB コマンド プロンプト >> が表示されますが、linux> は Linux プロンプトを表しています。システムによりプロンプトが異なる場合があります。デバッガーのプロンプトは、<gdb> です。

この例では、MATLAB fullfile(matlabroot,'extern','examples','mex') フォルダー内にある yprime.c をデバッグするための一般的な手順を説明します。

gdb でデバッグするには、以下の手順に従います。

  1. -g オプションを指定してソース MEX ファイルをコンパイルします。これで、デバッグ シンボルがインクルードされたファイルがビルドされます。たとえば、Linux プロンプトで以下を入力します。

    linux> mex -g yprime.c
  2. Linux プロンプトで、-D オプションを使用して matlab 関数を使用し、gdb デバッガーを起動します。

    linux> matlab -Dgdb
    
  3. デバッグを停止するよう gdb に指示します。

    <gdb> handle SIGSEGV SIGBUS nostop noprint
    <gdb> handle SIGUSR1 stop print
    
  4. -nojvm 起動フラグを使用して、Java® 仮想マシン (JVM™) を使用せずに MATLAB を起動します。

    <gdb> run -nojvm
  5. MATLAB で関数 dbmex によるデバッグを有効にして、バイナリ MEX ファイルを実行します。

    >> dbmex on
    >> yprime(1,1:4)
  6. デバッグを開始することができます。

    ゲートウェイ ルーチンの先頭で停止するように、mexFunction でブレークポイントを設定すると便利です。

    <gdb> break mexFunction
    <gdb> r
  7. いずれかのブレークポイントに達した時点で、デバッガーのすべてのコマンドを使用した変数の確認、メモリの表示、レジスタの検査が可能です。

    以下を入力してブレークポイントから先に進みます。

    <gdb> continue
  8. 最後のブレークポイントで停止後、以下を入力します。

    <gdb> continue

    yprime が終了し、MATLAB に以下のように表示されます。

    ans =
    
        2.0000    8.9685    4.0000   -1.0947
    
  9. MATLAB プロンプトで以下を入力して、デバッガーに制御を返します。

    >> dbmex stop

    または、MATLAB の実行を終了する場合は、以下を入力します。

    >> quit
  10. デバッガーの使用が終了したら、次のように入力します。

    <gdb> quit

    Linux プロンプトに戻ります。

デバッガーの使用方法の詳細は、デバッガーのドキュメンテーションを参照してください。

参考