「1つ以上のブレークポイントを設定することはできず、無効になっています。実行はプログラムの開始時に停止します。」
-
04-10-2019 - |
質問
Visual-C ++でコードにブレークポイントを設定しましたが、実行すると、タイトルに記載されているエラーが表示されます。
私はこの質問が以前にスタックオーバーフローで尋ねられたことを知っています(ブレークポイントは設定できず、無効になっています)、しかし、そこの答えはどれも私が見ている問題を完全に説明していませんでした。私が見ることができる最も近いのは、リンカーについての何かですが、私はそれを理解していません - だから誰かがより詳細に説明できればそれは素晴らしいことです。
私の場合、Visual C ++には2つのプロジェクトがあります - 生産DSWとテストコードDSW。デバッグモードで両方のDSWをロードして再構築しました。テストスクリプトを介して実行される本番コードにブレークポイントが必要です。私の問題は、テストコードを実行するときにエラーメッセージが表示されることです。これは、テストが開始されたときにロードされない生産コードにあるため、テストコードを実行するためです。
テストスクリプトの先頭には、mytest_initialize()コマンドがあります。これがオフになり、生産dllをロードすると思います。このラインが実行されたら、ブレークポイントを制作コードに入れて、それをヒットするまで実行できます。しかし、このラインに走り、ブレークポイントを設定し、テストを実行したいたびに続行する必要があるのは非常に迷惑です。
ですから、問題はVisual C ++が2つのプロジェクトが関連していることを認識していないことだと思います。これはリンカーの問題ですか?リンカーは何をし、この機能を作るにはどのような設定を変更する必要がありますか?
前もって感謝します。代わりに、既存の質問にこの質問を追加する必要がある場合はお詫び申し上げます。これが私の最初の投稿であるため、これがどのように機能するかはよくわかりません。
更新1] Chris Oが問題を特定したと思います。プロジェクト設定を使用してこの作業を行う方法を説明できれば、さらに更新を追加します。
正しい解決策はありません
他のヒント
DSWファイルに言及しているため、VC6を使用しているように聞こえます。それはVC6で得られるのと同じくらい良いと思います。モジュールがLoadLibraryからロードされた後、手動でブレークポイントを追加する必要があります。実際、プロジェクトのデバッグ設定があるかもしれないので、プロジェクトをデバッグするときにロードするDLLを指定することができます。これにより、F5にヒットするとブレークポイントが有効になります。
また、Mytest_initialize()が呼び出されたことがわかった後、デバッガーを添付してみることもできます。
私の場合、ブレークポイントを含むDLLプロジェクトをアクティブプロジェクトとして設定することでこれを解決し、このプロジェクトのデバッグ設定(右クリックプロジェクト>>設定>> [デバッグ]タブ)を変更して、実際にDLLを実行およびアクセスするプロジェクトを指します。 「デバッグセッションの実行可能ファイル:」および「ワーキングディレクトリ:」は、実際に実行したい実行可能な実行可能ファイルに設定する必要があります。
これがどんな助けでもあることを願っています。
右クリックプロジェクト>> [設定] >>リンクタブのチェックデバッグ情報の生成リンクのチェック