Отладка конкретного потока

267
09 ноября 2017, 03:17

При отладке создаются 8 потоков, каждый из которых выполняет одну и ту же функцию параллельно. Как можно проследить путь через F11 от начала и до конца конкретного потока? Чтобы не шли, при нажатии F11, все потоки параллельно в отладке, так мало что можно понять.

Answer 1

Например, в Visual Studio вы можете заморозить остальные потоки на время:

Не забудьте разморозить их потом! А то один поток будет ожидать окончания другого вечно.

Если другие потоки должны тем временем работать, вы можете поставить условную точку останова, в которой будете проверять ID потока (правая кнопка мыши по точке останова → Conditions...):

При следующем пробеге, однако, точку останова придётся отредактировать или убрать, так как ID потока может поменяться.

Не забывайте, однако, что многопоточная отладка не так проста! Если у вас в коде race condition, то наличие отладчика и точки останова может повлиять на порядок исполнения кода в различных потоках, так что с хорошими шансами ошибка может и не проявиться с пошаговым выполнением и точками останова отладкой. Для того, чтобы бороться с этим, вам придётся добавить логирование (которое влияет на порядок выполнения намного меньше, чем остановка в отладчике). Если и логирование не позволяет локализовать проблему, то приходится использовать метод пристального взгляда, просто анализируя код в уме.

Отладка многопоточного пода — одна из самых сложных вещей в программировании.

READ ALSO
Как привязать событие к кнопке

Как привязать событие к кнопке

У меня две кнопки CustomButtonЕсть только одно событие у клиента ClientSideEvent -> CustomButtonClick

355
Не могу разобраться с кодом

Не могу разобраться с кодом

У меня возник вопрос по части кодаНа 54 строке у private void shift_racket объявляется аргумент sx

276
Как создать светофор в unity

Как создать светофор в unity

Наткнулся на код рабочего светофора, но не могу понять как он работает

451
Симуляционная модель

Симуляционная модель

Не знаю как сформулировать корректный заголовок и вследствие этого как загуглить

240