ブレークポイントとステップ動作の使用法 で、空の行が NULL の最初のトークンを生成し、SEGV の原因となるバグを検出しました。エラーの回避策を使用できます。
前に作成したブレークポイントをすべて削除します。これをすばやく行うには、「ブレークポイント」ウィンドウを右クリックして「すべて削除」を選択します。
「実行可能ファイルをデバッグします」ダイアログボックスの <in 引数を削除します。
interp.cc の 130 行目の行ブレークポイントを切り替えます。
「ブレークポイント」ウィンドウで、先ほど作成したブレークポイントを右クリックして「カスタマイズ」を選択します。
「ブレークポイントをカスタマイズ 」ダイアログボックスの、「条件 」フィールドで token == 0 と入力します。
「アクション」ドロップダウンリストから「スクリプトの実行 」を選択します。
「スクリプト 」フィールドで、assign token = line と入力します。
ダイアログボックスは次のような画面になります。
「OK」をクリックします。
ここで、プログラムを実行して空の行を入力すると、クラッシュせずに、次の画面に示すような警告が表示されます。
dbxtool から dbx に送信されたコマンドを見れば、この回避策がより明確になる可能性があります。
when at "interp.cc":130 -if token == 0 { assign token = line; }