Как поставить точку останова на каждый MessageBox в моем приложении?
Как поставить точку останова на каждый MessageBox в моем приложении?
Ответы (6)
В Visual Studio IDE выберите меню Debug->New breakpoint->Breakpoint at Function...
Заполните функциональное поле текстом "MessageBox".
Напишите функцию-оболочку вокруг MessageBox, замените все ваши вызовы MessageBox этой функцией-оболочкой, поставьте точку останова внутри вашей функции-оболочки.
Выберите «Отладка» > «Новая точка останова» > «Перерыв в функции». Это дает вам всплывающее окно. Введите полное имя метода, который вы хотите прервать. Если это метод фреймворка, VS сообщит вам, что имя не может быть проверено, но вы все равно можете его установить. Например. чтобы сломать все System.Console.WriteLine, введите это и примите предупреждение.
Теперь, когда вы запустите приложение, VS остановится в WriteLine, но поскольку у вас, вероятно, нет исходных файлов для этого, VS не перейдет в нужное место. Однако стек вызовов будет верным, и вы сможете вернуться оттуда.
Это может быть невозможно, но если вы найдете и замените свой вызов MessageBox и добавите вызов (перед вызовом MessageBox) к функции, в которую вставлена точка останова, вы можете перейти оттуда.
Вы можете найти и заменить:
заменять
.ShowDialog();
с
.ShowDialog();
#ifdef dialogDebugging
System.Diagnostics.Debugger.Break();
#endif
Затем определите dialogDebugging в настройках вашего проекта.
Нажмите ctrl-F, чтобы открыть диалоговое окно поиска. Найдите MessageBox.Show. Щелкните правой кнопкой мыши строку кода и выберите «Точка останова» -> «Вставить точку останова».