何年もメンテナンスされていない古い C++ コードがあります。私は現時点でそれがどのように機能するかを学ぼうとしています。.xml 入力を受け取り、出力テキスト ファイルを吐き出す必要があります。2 つの異なる .xml 入力ファイルの処理にかかる時間は大きく異なり、一方は正しく動作し、もう一方は正しく動作しません。しかし、彼らは同じように始まります。2 つの異なる入力を使用してコードを実行したときに行われた関数呼び出しのログ ファイルを出力し、これらのログを相互に比較して、分岐点を確認したいと考えています。main() の最初の行でコードを中断して、gdb の制御フローをステップ実行することはできません。時間がかかりすぎています。理想的には、次のような方法を見つけたいと思います
gdb --args old_exec inp1.xml -step >log1.txt
gdb --args old_exec inp2.xml -step >log2.txt
diff log1.txt log2.txt
もちろん、「-step」フラグは実際のものではありませんが、すべてのステップをログに記録するように指示する何らかの方法が存在する可能性があります。何かご意見は?ありがとう!