以前は「編集と続行」と呼ばれていたホットリロードをC++プロジェクトで利用可能です。 この機能の制限事項については、「 サポートされているコード変更 (C++)」を参照してください。
エディット コンティニュは C++ プロジェクトで使用できます。 エディット コンティニュの制限事項の詳細については、「 サポートされているコードの変更 (C++)」を参照してください。
/Zo (最適化されたデバッグの強化) コンパイラ オプションは、/Od (Disable (Debug)) オプションなしでコンパイルされたバイナリの .pdb (シンボル) ファイルに追加情報を追加します。
/Zo オプションは、方法: 最適化されたコードをデバッグするに記載されているように、Edit and Continue を無効にします。
ホット リロードを有効または無効にする
現在のデバッグ セッション中に適用しないコードを編集する場合は、ホット リロードの自動呼び出しを無効にすることができます。 必要に応じて、自動ホット リロードを再度有効にすることができます。
Important
必要なビルド設定と機能の互換性に関するその他の情報については、「 Visual Studio 2015 Update 3 の C++ エディット コンティニュ」を参照してください。
- 現在デバッグ セッション中の場合は、デバッグを停止します (Shift + F5)。
[ツール>オプション] ウィンドウを開き、[>>] セクションを展開します。
デバッガーをアタッチして起動するときにホット リロードを有効にするには (F5)、右側のウィンドウで [ ホット リロードを有効にする ] チェック ボックスをオンにします。
チェック ボックスをオンにした後、次のオプションを構成できます。
ホット リロード オプション Description 既定値 続行時に変更を自動的に適用する (ネイティブのみ) デバッガーがアタッチされた状態で続行する際に変更を適用します (F5)。 Enabled 古いコードに関する警告 変更されたが、すぐに適用できないコードがデバッガーで検出されたときに警告を有効にします。 Enabled デバッグしない場合に有効にする デバッガーをアタッチ せずに 起動するときにホット リロードを有効にします (Ctrl + F5)。 Enabled ファイル保存時に適用 ファイルの保存時に変更を適用します。 Disabled ログの詳細度 ホット リロードが有効になっている場合のログ記録のレベルを設定します。 [最小]、[詳細]、または [診断] から選択します。 最小限
[ツール>オプション] ダイアログを開き、[デバッグ>.NET/C++ ホット リロード] セクションを展開します。
この機能を有効にするには、次のオプションのいずれかを選択します。
ホット リロードを有効にする: デバッガーをアタッチして起動するときにホット リロードを有効にします (F5)。
デバッグなしで起動するときにホット リロードを有効にする: デバッガーをアタッチ せずに 起動するときにホット リロードを有効にします (Ctrl + F5)。
[ファイルの保存時にホット リロードを有効にする]: ファイルの保存時にホット リロードを有効にします。
ログの詳細度: ホット リロードが有効になっている場合のログ記録のレベルを設定します。 最小(デフォルト)、詳細、診断を選択してください。
これらの設定を変更すると、作業中のすべてのプロジェクトに影響します。 設定を変更した後、アプリケーションをリビルドする必要はありません。 コマンド ラインまたはメイクファイルからアプリケーションをビルドしても、Visual Studio 環境でデバッグする場合は、
/ZIオプションを設定した場合でもエディット コンティニュを使用できます。[OK] を選択.
編集と続行を有効化または無効化する
現在のデバッグ セッション中に適用しないコードを編集する場合は、エディット コンティニュの自動呼び出しを無効にすることができます。 必要に応じて、自動編集と続行機能を再び有効にすることができます。
Important
必要なビルド設定と機能の互換性に関するその他の情報については、「 Visual Studio 2015 Update 3 の C++ エディット コンティニュ」を参照してください。
現在デバッグ セッション中の場合は、デバッグを停止します (Shift + F5)。
[ツール>オプション] ダイアログを開き、[デバッグ>General] セクションを展開します。
エディット コンティニュを有効にするには、[ エディット コンティニュを有効にする ] チェック ボックスをオンにします。 このオプションを無効にするには、チェック ボックスをオフにします。
Edit and Continue グループで、Enable Native Edit and Continue チェックボックスにチェックを入れるか外します。
この設定を変更すると、作業中のすべてのプロジェクトに影響します。 この設定を変更した後、アプリケーションをリビルドする必要はありません。 コマンド ラインまたはメイクファイルからアプリケーションをビルドしても、Visual Studio 環境でデバッグする場合は、
/ZIオプションを設定した場合でもエディット コンティニュを使用できます。
コード変更を明示的に適用する
C++ では、エディット コンティニュは 2 つの方法でコード変更を適用できます。 コードの変更は、実行コマンドを選択するときに暗黙的に適用することも、コード 変更の適用 コマンドを使用して明示的に適用することもできます。
コードの変更を明示的に適用しても、プログラムは中断モードのままであり、実行は行われません。
- コード変更を明示的に適用するには、[ デバッグ ] メニューの [ コード変更の適用] を選択します。
コードの変更を停止する方法
エディット コンティニュがコード変更の適用中である間は、操作を停止できます。
コード変更の適用を停止するには:
[ デバッグ ] メニューの [ コード変更の適用を停止] を選択します。
このメニュー項目は、コードの変更が適用されている場合にのみ表示されます。
このオプションを選択した場合、コードの変更はコミットされていません。
実行ポイントをリセットする
一部のコード変更により、エディット コンティニュで変更が適用されると、実行ポイントが新しい場所に移動する可能性があります。 この機能は、実行ポイントを可能な限り正確に配置しますが、すべてのケースで結果が正しくない可能性があります。
C++ では、実行ポイントが変更されたときにダイアログ ボックスによって通知されます。 デバッグを続行する前に、場所が正しいことを確認する必要があります。 正しくない場合は、[次のステートメントの 設定 ] コマンドを使用します。 詳細については、「 次に実行するステートメントを設定する」を参照してください。
古いコードを操作する
場合によっては、エディット コンティニュでコード変更を実行可能ファイルにすぐに適用することはできませんが、デバッグを続行すると後でコードの変更を適用できる場合があります。 このシナリオは、現在の関数を呼び出す関数を編集する場合、または呼び出し履歴の関数に 64 バイトを超える新しい変数を追加した場合に発生します。
このような場合、変更を適用できるようになるまで、デバッガーは元のコードの実行を続行します。 古いコードは、 enc25.tmpなどのタイトルを持つ別のソース ウィンドウに一時ソース ファイル ウィンドウとして表示されます。 編集されたソースは、元のソース ウィンドウに引き続き表示されます。 古いコードを編集しようとすると、警告メッセージが表示されます。