Linux プラットフォームでのデバッグ
Linux® システムで使用できる GNU® デバッガー gdb には、ブレークポイントの設定、変数の調査、およびソース コードの行単位実行機能を含む、ソース コードの完全なデバッグ機能が用意されています。
この手順では、MATLAB® コマンドの前に MATLAB コマンド プロンプト >>
が表示されますが、linux>
は Linux プロンプトを表しています。システムによりプロンプトが異なる場合があります。デバッガーのプロンプトは、<gdb>
です。
この例では、MATLAB fullfile(matlabroot,'extern','examples','mex')
フォルダー内にある yprime.c
をデバッグするための一般的な手順を説明します。
gdb でデバッグするには、以下の手順に従います。
-g
オプションを指定してソース MEX ファイルをコンパイルします。これで、デバッグ シンボルがインクルードされたファイルがビルドされます。たとえば、Linux プロンプトで以下を入力します。linux> mex -g yprime.c
Linux プロンプトで、
-D
オプションを使用してmatlab
関数を使用し、gdb デバッガーを起動します。linux> matlab -Dgdb
デバッグを停止するよう gdb に指示します。
<gdb> handle SIGSEGV SIGBUS nostop noprint <gdb> handle SIGUSR1 stop print
-nojvm
起動フラグを使用して、Java® Virtual Machine (JVM™) を使用せずに MATLAB を起動します。<gdb> run -nojvm
MATLAB で関数
dbmex
によるデバッグを有効にして、バイナリ MEX ファイルを実行します。>> dbmex on >> yprime(1,1:4)
デバッグを開始することができます。
ゲートウェイ ルーチンの先頭で停止するように、
mexFunction
でブレークポイントを設定すると便利です。<gdb> break mexFunction <gdb> r
いずれかのブレークポイントに達した時点で、デバッガーのすべてのコマンドを使用した変数の確認、メモリの表示、レジスタの検査が可能です。
以下を入力してブレークポイントから先に進みます。
<gdb> continue
最後のブレークポイントで停止後、以下を入力します。
<gdb> continue
yprime
が終了し、MATLAB に以下のように表示されます。ans = 2.0000 8.9685 4.0000 -1.0947
MATLAB プロンプトで以下を入力して、デバッガーに制御を返します。
>> dbmex stop
または、MATLAB の実行を終了する場合は、以下を入力します。
>> quit
デバッガーの使用が終了したら、次のように入力します。
<gdb> quit
Linux プロンプトに戻ります。
デバッガーの使用方法の詳細は、デバッガーのドキュメンテーションを参照してください。