2017-03-09 6 views
0

マルチデバッガで行番号が間違っているか、ブレークポイントが1つずれていますか?複数のデバッガが1つのブレークポイントでオフになっています

私はこのプログラムの最後にブレークポイントを打つに依存プロセスを通過MULTIスクリプト(scripty.rc)を持っています。プログラムは、2つのループの1つで完了します。

:failure 
6648 NOP 
6649 b failure ; You are a failure 

:complete 
6650 NOP 
6651 b complete ; Your program worked, rejoice 

だから私は、6649または6651で壊れたユーザーのラインを印刷し、それらはすべてがhunkydoryであることを確認できるようになっています。

しかし、

6651で壊れていません。必ずしもそうではありません。昼食の前に私はそれがすべての作品を確実にしている間、私はそれが私が欲しいのと同じようにヒットしたのを見た。昼食後、私がHW男とそれをデモしているとき、それが印刷する行は6650 NOPです。地獄のように?本当に?私はあなたをデモする瞬間を裏切った?

私はソフトウェアが同じであることを確認しています、そしてそれはいくつかの卑劣なコミットではありません。

スクリプトが同じであることを確認します。別のブレークポイントが設定されているようではありません。

私はブレークポイントで数学を行います。スクリプトではbp _start#2135、はい、_startは4516にあります。はい、いくつかの詳細な分析の後、4516 + 2135 = 6651です。

そして、私はそれがより早く正しいラインに当たるのを見ました。

私はMULTIと私の不健全な関係を、この1をアップチョークに誘惑しています。回避策は簡単ですが、非決定論的なデバッガは恐ろしい音で、私はそれを地面に打ちたいのです。マルチデバッガが行番号を間違って取得するか、またはブレークポイントが1つ打ち切られたのを見たことがありますか?それ以外に何ができるのか誰でも知っていますか?私は何か簡単にねじれていますか?

+0

私はそのことについて考えました。しかし、それは同じファイルをランチ上の行動の変化を説明しません。プラス私は現在のファイルが間違った場所に当たっているのを見ている。私の数学がうんざりしない限り。それは何かだけどね。私は再建を試みます。 – Philip

+0

Eh、n​​aw。リビルドには同じバイナリとバイナリがあります。ppcファイルと同じ動作をします。 – Philip

+0

あなたのスクリプトは本当に "bp"とか、 "b"と言いますか?少なくともMULTI 7では、コマンドは後者であり、前者は何もしません。 –

答えて

1

これが見つかりました。それは確かに愚かで単純です。

これは、MULTIの機能です。ブレークポイントを設定すると、procedure#123の形式で記録されます。 123は、プロシージャの開始からのオフセットです。私が持っているこの素敵なツールは、ASMで書かれているので、ただ1つが_startです。

MULTIは1から始まる手続きの行数を数えます。 MULTIデバッガの左側を見てください。これはヘルプファイルにもあります。「MULTI:ソースペインのデバッグ」一番左の数字列はファイル行番号です。右側のプロシージャーは、プロシージャー相対行番号です。

だから、手続きの最初の行で破っています、プロシージャの行番号+1で改行されていないproc#1で破ります。それは実際には相殺されません。 4516 + 2135で壊す代わりに、私は4516 + 2136の命令で壊れたかった。私はb _start#0が何をするのか分からない。

それはバグレポートを記入し、ここで質問をすることになると怠惰ないことに関する重要な教訓もあります。上記の上に、私は行番号を入力しましたが、手順番号は省略して重要ではないと考えました。

関連する問題