2016-07-01 6 views
0

私のシナリオは、私が働いている場所でVB6アプリケーションをサポートしています。ここ数週間、以前より頻繁にクラッシュし始めました。さまざまな種類のストレージにローカルのAccess MDBデータベースとリモートSQL Server DBの両方を使用します。良いニュースは、私たちが交換用のアプリを書いていることです。その間に私はこのバンドをサポートするために必要なバンドのニュースで、ベンダーはこの世界からずっと去っています。VB6デバッグ - コンパイル

クラッシュを引き起こしていることを私が試して診断する方法は何ですか?たとえば、これまでのところ、ODBCトレース(MDBコンポーネント用)、SQLプロファイラトレース、およびProcMonをクライアントPCで試しました。

クラッシュ時にアプリが何をしようとしているかを調べることができる他のものはありますか?

+0

エラーメッセージは表示されませんか?ちょうどハングするか消える?単一のユーザーまたは複数の? – topshot

+0

エラーがあまりにも曖昧です。存在する場合、VB6エラーは表示されません。ローカルMDBと中央SQLを持つ複数のユーザー – Paul

+0

私はAccessの破損を疑うでしょうが、複数のローカルデータベースでは起こりそうにありません。そうすれば、ますます増えてきた最新のアップデートや、扱われていないSQLサーバに対する何らかの新しいネットワークの問題を考えるようになるでしょう。 VB6のエラーは表示されませんが、明らかに「あいまいな」エラーが表示されているので、それは何ですか?彼らはすべて7 64のPCを勝つのですか? – topshot

答えて

1

デバッガで起動することもできます。

windbgまたはntsd(ntsdはコンソールプログラムであり、インストールされている可能性があります)。どちらもWindows用デバッグツールからのものです。

http://msdn.microsoft.com/en-us/windows/hardware/hh852363

のWindows

ため

をダウンロードしてインストールデバッグツールは、Windows SDKをインストールしますが、ただのデバッグツールを選択します。

C:\

のシンボルと呼ばれるフォルダを作成します。

Windbgを起動します。 [ファイル]メニュー - シンボルファイルのパスと、その後

windbg -o -g -G c:\windows\system32\cmd.exe /k batfile.bat 

srv*C:\symbols*http://msdl.microsoft.com/download/symbols 

を入力してくださいあなたはそれを停止するF12を押すことができますし、kbは、コールスタック(gはプログラムを継続)が表示されます。エラーがあれば、停止して表示します。

(そのメモリに何があるか見るためdb 01244のようにブレークポイント

使用db addressを設定するシンボルとbp symbolnameを一覧表示するにはロードされたモジュール、x *!*をリストアップするタイプlm

はVB6でのプログラミングの場合、この環境変数link=/pdb:noneは、シンボルを別々のファイルではなくdllに格納します。No Optimisationsでプログラムをコンパイルして、シンボリックデバッグ情報の作成にチェックをつけてください。プロジェクトのプロパティのCompileタブの両方

+0

私の謝罪、私はもっと明示されていたはずです。私はこのアプリのソースをシンボルで再コンパイルする必要はありません。 – Paul

+0

いいえ、窓はそれ自身の呼び出しのためにそれ自身の記号を使用します。 –

+0

プログラムはWindowsコードで時間の90%を費やします。VBプログラムはVBランタイムの残り時間の大部分を費やします。したがって、あなたのコードは実行しているコードの数パーセントです。シンボルはVBランタイムで使用できます。 WindbgはWindows用のシンボルをダウンロードします。シンボルはライブを2倍以上に簡単にしますが、必要ではありません。さらに、クラッシュの詳細やクラッシュした場所を知ることができます。成功の可能性はほとんどありませんが、あなたの質問に答えます* *どこがクラッシュしていますか? –