Отладка при сбое метода при вызове из другого потока - PullRequest
0 голосов
/ 09 июня 2009

У меня есть код, подобный приведенному в этом вопросе, в основном UI-поток, который обновляется из другого потока и использует InvokeRequired() и Invoke(..). Теперь, если метод завершается ошибкой в ​​рабочей части, отладчик останавливается на строке Invoke(..) - могу ли я сделать так, чтобы он показывал мне строку, где он действительно потерпел неудачу, как это обычно происходит?

Ответы [ 2 ]

1 голос
/ 09 июня 2009

Вероятно, вы столкнулись с проблемой Just My Code (JMC). Это особенность отладчика, когда он пытается ограничить такие элементы, как необработанное уведомление об исключении, только кодом, принадлежащим пользователю, а не средой. Попробуйте отключить эту функцию и разрешить возникновение исключений, и это поможет вам определить источник проблемы.

Отключение только моего кода

  • Перейти в Инструменты -> Параметры
  • Перейдите к Отладчику -> Общее
  • Снимите флажок «Просто мой код»
1 голос
/ 09 июня 2009

Пытались ли вы сделать перерыв в отладчике для исключений (в меню VS: Отладка -> Исключения перейдите к «Общим языковым исключениям времени выполнения» и, при необходимости, найдите конкретный тип исключений, установите флажок «Брошено»)? Это приведет к разрыву отладчика в строке кода, где генерируется исключение. Я думаю это работает и в многопоточных сценариях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...