よし、私は単純に bejeebus を混乱させるバグに遭遇しました。今は何も得られないので、調査できることについてのアイデアを探しています。次のようになります。
スタンドアロンの Java アプリケーションがあり、それが実行されているコンピューター (WinXP マシン) の Line-In ボリュームをときどきいじる必要があります。これは、さまざまなコンポーネント ボリュームを取得および設定できる外部実行可能ファイル (VB6* で記述) のペアを呼び出すことによって行われます。(Line-In、Mic、Wave、CD、およびマスター ボリューム コントロールを処理できます。)
現場には数百台のユニットがあり、私の会社が提供して制御するハードウェア (Dell マシン) で実行されています。少なくとも数十のクライアントがこの機能を使用しており、1 つのインスタンスを除いて完全に機能しています。
この 1 つのトラブルメーカー マシンでは、まったく機能しません。アプリの実行中に音量スライダーを見て、音量が下がるはずのときにそのままにしておきます。アプリのログ ファイルを確認すると、エラーは発生せず、ボリュームを削除するコードを実行しているようです。コマンドラインから実行可能ファイルを実行すると、完全に機能します。
このマシンが、正常に動作しているすべてのマシンと 100% 同一であるとは保証できませんが、かなり長い間、同じ製品ラインの Dell を購入しています。少なくとも、非常によく似ています。
だから、私の混乱を箇条書きリストに変えてください:
- Java コードで愚かなことをしている (つまり、STDOUT/STDERR バッファをクリアしていない) 場合、なぜこのマシンだけの問題なのですか?
- VB6 実行可能ファイルに何か問題がある場合、コマンド ラインから他のすべてのマシンとこのマシンで動作するのはなぜですか?
- このマシンに何らかの異常なハードウェアがあるとすれば、Java アプリケーション内から呼び出された場合にのみ、ボリューム コントロールの実行可能ファイルが失敗する原因となる異常はどのようなものでしょうか?
私は非常に混乱しています。私は混乱するのが好きではありません。私の悟りにつながるかもしれない提案はありますか? **
-* -- 1998 年に VB6 から電話があり、彼らは時代遅れになった独自のバグ ジェネレーターを元に戻したいなどと言っています。私の決定ではありませんでした。しかし、コードは機能します。いつもの。
-** -- ここに仏教のジョークを挿入します。
更新編集: カスタマーサービスが何かに遭遇した可能性があります。データベース内のクライアント構成設定に関係している可能性があります。新しい証拠は、そのクライアントに対して何かが誤って構成されているか、特定の構成に応答して私のソフトウェアが何か愚かなことをしていることを示唆しています。そして、この特定の機能が私が思っていたほど一般的に使用されていないため、問題は私たちが思っていたよりも広範囲に広がっている可能性があります.
コメントへの対応:
- Debugger: 理論的には可能ですが、私たちのセットアップでは大きな頭痛の種のようです。
- High Verbosity Logging、Java: これは良い考えです。特に、問題が当初考えていたよりも広範囲に広がっている可能性があることを考えると。いくつかの仮定を再検討する時が来ました。そして、おそらくそれらをクラブします。赤ちゃんアザラシのように。
- 高詳細ログ、VB6: 可能性あり。私の VB6-fu は哀れなほど弱いので、テキストをファイルに出力する方法がわかりません。しかし、ええ、スクリプトが呼び出されているかどうかを知ることは価値があります。
- Window Event Viewer: このツールに慣れていません。それを修正する必要があるかもしれません。
- PATH の問題: 可能性は低いと思います。Java コードは、環境変数に依存しているようには見えない実行可能ファイルへの相対パスを作成します。
人々が提供した提案に感謝します。少なくとも、あなたは私の脳を有望な方向に動かしてくれました.
解決策の編集: そして勝者は...それはバグではなく、機能です! 機能が恐ろしく、ひどく間違っていました。私たちを悩ませないようにするために去勢される機能。
一連の無効な仮定により、私はすぐにそれを見ることができませんでした。そのうちの少なくとも 1 つは、「コードにデバッグ ステートメントを追加する必要はありません。既にそこにあるステートメントは、私が知る必要があるすべてを教えてくれます!」というものでした。DaDaDom さん、コメントを回答に変えたい場合は、光沢のあるチェックマークが表示されます。
提案を寄せてくれたすべての人に感謝します。すみません、机との打ち合わせに頭が遅れています。