From b294afe3e40ecc0a2fedfea31cdf1c709ccba9dc Mon Sep 17 00:00:00 2001 From: Shlomi Date: Sun, 26 Apr 2020 23:16:01 +0300 Subject: [PATCH] Visual Studio Configure Setup and Debugging (#3116) * Visual Studio Configure Setup and Debugging My first doc contribution! * Apply suggestions from Calinou Co-Authored-By: Hugo Locurcio Co-authored-by: Max Hilbrunner --- development/cpp/configuring_an_ide.rst | 57 +++++++++++++++++- .../cpp/img/vs_1_install_cpp_package.png | Bin 0 -> 5790 bytes .../cpp/img/vs_2_project_properties.png | Bin 0 -> 16398 bytes .../cpp/img/vs_3_debug_command_line.png | Bin 0 -> 8852 bytes development/cpp/img/vs_4_debugging_main.png | Bin 0 -> 10940 bytes 5 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 development/cpp/img/vs_1_install_cpp_package.png create mode 100644 development/cpp/img/vs_2_project_properties.png create mode 100644 development/cpp/img/vs_3_debug_command_line.png create mode 100644 development/cpp/img/vs_4_debugging_main.png diff --git a/development/cpp/configuring_an_ide.rst b/development/cpp/configuring_an_ide.rst index 8a87e15b7..3f31063b1 100644 --- a/development/cpp/configuring_an_ide.rst +++ b/development/cpp/configuring_an_ide.rst @@ -13,7 +13,7 @@ Development Environment), here are setup instructions for some popular ones: - :ref:`Qt Creator ` (all desktop platforms) - :ref:`Kdevelop ` (all desktop platforms) - :ref:`Xcode ` (macOS) -- :ref:`Visual Studio ` (Windows) +- :ref:`Visual Studio ` (Windows) - :ref:`Visual Studio Code` (all desktop platforms) - :ref:`Android Studio` (all desktop platforms) - :ref:`CLion` (all desktop platforms) @@ -263,6 +263,61 @@ Test it: - It should break at the point! +.. _doc_configuring_an_ide_vs: + +Visual Studio +-------------- + +Visual Studio Community is free for non-commercial use and has lots of great features, such as memory view, performance view, source control and more. +You can get it `at microsoft `_. + +Setup +^^^^^^ + +To start developing with Visual Studio, follow these steps: + +- Open the Visual Studio Installer and install the C++ package: + +.. image:: img/vs_1_install_cpp_package.png + +- Open a Command Prompt or PowerShell window, use ``cd`` to reach the Godot source directory and run ``scons platform=windows vsproj=yes``. + +- Now open the Godot folder by clicking **Open a project or solution** and choose ``godot.sln``. + - You can also double-click the ``godot.sln`` file in Explorer. + +You can now start developing with Visual Studio. + +Debugging +^^^^^^^^^^ + +Visual Studio features a powerful debugger. This allows the user to examine Godot's source code, stop at specific points in the code, +make changes, and view them on the run. + +.. Note:: Debugging the Godot Engine inside the editor will require an extra setup step. + + Because opening Godot opens the Project Manager at first instead of the project you're working on, + the debugger will detach as soon as you open a project. This means the debugger will stop, even though Godot is still running in another process. + + The reason is that the debugger attaches to the Project Manager process only. When you open a project, it will close and open another process for + the editor. + +To overcome this, you need to edit the debugging command line arguments in VS. In your project, click **Project > Project Properties**: + +.. image:: img/vs_2_project_properties.png + +Then add this to command arguments: + +.. image:: img/vs_3_debug_command_line.png + +- The ``-e`` flag is for entering the editor directly (which skips the Project Manager). +- The ``--path`` argument should be an *absolute* path to a project directory (not a `project.godot` file). + +To learn more about command line arguments, refer to the :ref:`command line tutorial `. + +To check that everything is working, put a breakpoint in ``main.cpp`` and press F5 to start debugging. + +.. image:: img/vs_4_debugging_main.png + .. _doc_configuring_an_ide_vscode: Visual Studio Code diff --git a/development/cpp/img/vs_1_install_cpp_package.png b/development/cpp/img/vs_1_install_cpp_package.png new file mode 100644 index 0000000000000000000000000000000000000000..87ada024158a9097ff6f58f614ce7a81a838c32b GIT binary patch literal 5790 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 literal 0 HcmV?d00001 diff --git a/development/cpp/img/vs_2_project_properties.png b/development/cpp/img/vs_2_project_properties.png new file mode 100644 index 0000000000000000000000000000000000000000..51c2df5edda75c79742259206dcc44b45310c494 GIT binary patch literal 16398 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 SXo2tH2gpb$h?j{P`u{IlHxw!W literal 0 HcmV?d00001 diff --git a/development/cpp/img/vs_3_debug_command_line.png b/development/cpp/img/vs_3_debug_command_line.png new file mode 100644 index 0000000000000000000000000000000000000000..f5241624759136eb9f9ef380efc040fa8f8c266c GIT binary patch literal 8852 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 S2f%|708o@ul|{>#h5R1^XsMF` literal 0 HcmV?d00001 diff --git a/development/cpp/img/vs_4_debugging_main.png b/development/cpp/img/vs_4_debugging_main.png new file mode 100644 index 0000000000000000000000000000000000000000..d546ae4257c72fe812b53c1402914ed7edaf53b3 GIT binary patch literal 10940 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