Удаленная отладка Visual Studio при запуске приложения - PullRequest
21 голосов
/ 28 марта 2012

Насколько я понимаю, единственный способ использовать удаленный отладчик - запустить целевое приложение, а затем подключиться к нему через Visual Studio.Есть ли способ перехватить все точки останова с самого начала программы?

В моей программе есть код, который мне нужно отладить, и я никогда не смогу подключить отладчик достаточно быстро, чтобы захватить выполнениекод.

Ответы [ 5 ]

13 голосов
/ 28 марта 2012

Если вы можете изменить код, попробуйте ввести эту строку кода в начальную точку вашего приложения:

System.Diagnostics.Debugger.Launch();

Когда эта строка нажата, она предложит вам присоединить отладчик, фактически ожидая ответа. Так как вы используете удаленный отладчик, вы должны иметь возможность подключиться в этот момент, а затем просто отменить диалог. Надеюсь, это поможет.

10 голосов
/ 07 марта 2014

Решение

System.Diagnostics.Debugger.Launch 

у меня тоже не сработало.Тем не менее, мне удалось решить мою проблему записи в моем приложении, запустив следующее:

while (!System.Diagnostics.Debugger.IsAttached)
    System.Threading.Thread.Sleep(100);

Таким образом, приложение будет ждать, пока не подключится отладчик.

4 голосов
/ 24 января 2019

На целевом компьютере установите удаленный отладчик Visual Studio, который соответствует году Visual Studio на локальном компьютере.

Обратите внимание на строку, которая дает вам имя сервера.

На вашем локальном компьютере в Visual Studio откройте свойства вашего запускаемого проекта, а затем откройте раздел отладки.

Установите флажок «использовать удаленный компьютер», а затем введите в текстовое поле имя сервера, полученное от удаленного отладчика Visual Studio.

В разделе «Начать действие» выберите «Запустить внешнюю программу». Затем укажите в поле путь к .exe, который вы хотите запустить на целевой машине.

Теперь, когда вы нажимаете кнопку запуска с локального компьютера, он запускает программу на целевом компьютере с подключенным отладчиком.

4 голосов
/ 25 апреля 2012

В Visual Studio Pro 2010 при создании приложения .NET 4 это не работает для меня.

По-видимому, это известная ошибка:

https://connect.microsoft.com/VisualStudio/feedback/details/611486/debugger-launch-is-now-crashing-my-net-application-after-upgrading-to-net-4-0

(Несколько странный) обходной путь на данный момент, который работает для меня, состоит в том, чтобы приложение вызывало MessageBox () прямо в начале инициализации главного окна:

public partial class MainWindow : Form
{
    public MainWindow()
    {
        // To allow you time to attach a remote debugger ...
        MessageBox.Show("Please attach debugger");

        InitializeComponent();
        ...

Теперь вы можете прикрепитьУдаленный отладчик VS на досуге, а затем нажмите ОК в окне сообщения.

Уродливо, но функционально.

0 голосов
/ 24 января 2019

Правильным решением для меня была комбинация ответов.

Цикл while проверит, подключен ли отладчик из Visual Studio, и выйдет из цикла, когда он подключен.

        System.Diagnostics.Debugger.Launch();
        while (!System.Diagnostics.Debugger.IsAttached)
        {
            System.Threading.Thread.Sleep(100);
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...