Отладка нескольких потоков в eclipse



в методе, который я отлаживаю, я создаю новый поток. Мне нужно отладить выполнение этого нового потока, а не родительского потока. Как я могу сделать это в Eclipse?

665   4  

4 ответов:

поставьте точку останова на метод " run " нового потока. Это остановит выполнение после запуска потока.

в дополнение к ответу Шамита Вермы:

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

в решение:

определить точку останова в нужном потоке (@Run () метод я ожидаю..), щелкните правой кнопкой мыши на точке останова -> свойства точки останова.

в диалоговом окне Свойства точки останова отметьте " приостановить VM "вместо"приостановить поток".

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

в дополнение к ответу Эрика каджу. Если вы отлаживаете CDT (это может быть применимо и для Java, я не уверен в этом), то

  1. поместите точку останова в метод run () (или его эквивалент). Или любой момент, в котором вы уверены, что необходимые потоки и не обязательные потоки (те, которые будут удалены фильтром) работают.
  2. начать сеанс отладки.
  3. когда точка останова в run нажата, вы можете перейти к другому точка останова, включите эту точку останова, если она была отключена. Затем щелкните правой кнопкой мыши на точке останова - > перейти к фильтрам, теперь вы можете выбрать поток, который вы хотите, чтобы точка останова была включена, и вы можете снять флажок с остальных потоков. Таким образом, эта точка останова будет поражена только для этого конкретного потока.

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

в окне отладки eclipse вы можете перейти к потокам, чтобы приземлиться на нужный номер рабочего потока и продолжить последовательное исследование step over(F6). enter image description here

Comments

    Ничего не найдено.