それでも、特定の入力を与えると、それらは異なる動作をします
のアルゴリズムのより良い動作を理解するために、古いバージョンと新しいバージョンのログインを拡張しますcertain input
。明確になったら、たとえば、まだ必要な場合はgdbを使用できます。
更新
OK、私はロギングはOKですが、追加したくありません。
もう1つの方法はトレースです。実はSolarisでしか使っていませんが、Linuxにもあるようです。Linuxでは使用したことがないので、テストできるのは単なるアイデアです。
SystemTapを使用できます
ユーザースペースプロービング
SystemTapは当初、カーネルスペースプロービングに焦点を当てていました。ただし、ユーザースペースプロービングが問題の診断に役立つ場合が多くあります。SystemTap 0.6は、ユーザースペースプロセスのプロービングを可能にするサポートを追加しました。SystemTapには、ユーザースペースプロセスの関数へのエントリと関数からの戻りのプローブ、ユーザースペースコードの事前定義されたマーカーのプローブ、およびユーザープロセスイベントの監視のサポートが含まれています。
私はそれがうまくいくことを保証することができますが、なぜそれを試してみませんか?
ドキュメントには例もあります:
関数xmalloc関数がコマンドlsによってどのように呼び出されているかを確認したい場合は、ユーザースペースのバックトラック関数を使用してその情報を提供できます。
stap -d /bin/ls --ldd \
-e 'probe process("ls").function("xmalloc") {print_ustack(ubacktrace())}' \
-c "ls /"