Brainfsck でマンデルブロー集合を計算する MIPS32r6 プログラムにブレークポイントを設定しようとしています。プログラム自体は C++ で書かれ、Clang でコンパイルされ、LLDB でデバッグしています。
私が抱えている問題は、LLDB では、主に低い行番号に特定のブレークポイントを問題なく設定できることです。ただし、Main.cpp の 70 行目以降では、ブレークポイントが「未解決」として表示されます (ブレークポイント リストを実行すると完全に適切なアドレスが表示されますが)。つまり、70 行目以降に設定しようとしたブレークポイントはすべて未解決として表示され、70 行目より前の適切なブレークポイントはすべて問題なく解決されます。
ここにリンクしたバイナリのコピーを配置しました: http://filebin.ca/2tJzo2LLBJWO/MipsTest.bin
Main.cpp のコピー: https://paste.ee/p/WYs8Y
私は次のオプションで構築しています:
clang -mcompact-branches=always -fasynchronous-unwind-tables -funwind-tables -fexceptions -fcxx-exceptions -mips32r6 -O0 -g -glldb ...
lld --discard-none -znorelro --eh-frame-hdr ...
現時点では、何がこの問題を引き起こしているのかわかりません。