3

デバッグ セッションを開始すると、ブレークポイント (黄色の背景色) と思われる行でプログラムの実行が停止します。続行するには F5 キーを押す必要があり、プログラムは正常に進行します。

ブレークポイントが設定されていないように見えるため、これをファントム ブレークポイントと呼んでいます。ループ内で実行が停止しても、F5 キーを 1 回押すだけで続行できます。

ファントムの場所にブレークポイントを設定し、すべてのブレークポイントを削除しようとしましたが、役に立ちませんでした。

私が見つけることができる唯一の他の同様の問題は、Java と、解決策がアプリケーションを逆コンパイルすることであった MS-Access に関するものです。

開発中はこれが非常に面倒でしたが、アプリケーションが Citrix サーバーにインストールされ、ブレークポイントに遭遇したというエラー メッセージ ボックスが表示されるまで、歯を食いしばり、それをむき出しにしていました。

後付けとして、セットアップ プログラムを再構築したところ、アプリケーションを実行した後、重大なエラーが発生しました。デバッグ モードでは、メッセージは「myapp.exe がブレークポイントをトリガーしました:」でした。Citrixサーバーでまったく機能する理由を説明できません)。

この問題を解決する方法についての提案をいただければ幸いです。

ティア

4

1 に答える 1

5

あなたは他の誰かのコードを実行しており、そのコードにはプログラムにコンパイルされた明示的なデバッガブレーク命令があります。たとえば、マネージド プログラムで Debugger.Break() を記述することで、これを行うことができます。アンマネージ コードにも存在する可能性があり、__debugbreak() 組み込み関数または DebugBreak() winapi 関数がこれを行います。単純な見落としである可能性があります。問題について警告するために意図的にコードに残されている可能性があります。

これを行ったプログラマーを見つける 1 つの方法は、デバッガーを使用することです。プロジェクト + プロパティの [デバッグ] タブで、[アンマネージ コードのデバッグを有効にする] オプションにチェックを入れます。次に、[ツール] + [オプション]、[デバッグ]、[一般] で、[マイ コードのみを有効にする] オプションのチェックを外します。

プログラムを実行し、状態を再現します。次に、Debug + Windows + Call Stack を使用して、リストの一番上を確認します。必要に応じて上にスクロールします。これがあなたのコードではないことを示すためにグレー表示されているかもしれません。そこに DLL の名前が表示されます。その DLL を作成した会社またはプログラマーに電話して、アドバイスを求めてください。

于 2013-06-04T02:57:15.773 に答える