Отладка LLDB - игнорировать переменные определенных c классов для ускорения отладки - PullRequest
0 голосов
/ 06 августа 2020

Я новичок в отладке c ++ и LLDB. Я использую VSCode с его адаптером C ++, LLDB в качестве отладчика и bazel в качестве системы сборки. Мое приложение занимается манипулированием изображениями. Приложение работает быстро, но его отладка идет очень медленно. Это потому, что после того, как я загрузил изображения в память, прохождение каждой строки занимает от 20 секунд до минуты. Я предполагаю, что необработанных изображений слишком много для отладчика. Если я использую маленькое изображение, я могу быстро пройти код внутри отладчика

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

1 Ответ

1 голос
/ 06 августа 2020

Базовый отладчик lldb не извлекает никаких переменных, если явно не запрошено. Всегда пользовательский интерфейс запрашивает значения переменных.

В Xcode, если вы закроете представление Locals, Xcode не будет запрашивать lldb для выборки переменных. Это ускоряет пошаговое выполнение в кадрах с большими локальными переменными.

Затем, если вам нужно следить за одной или двумя переменными во время выполнения, вы можете использовать всплывающие подсказки или консоль отладчика, чтобы распечатать их по запросу. Вы также можете настроить target stop-hooks в консоли lldb и использовать их для автоматической печати отслеживаемых переменных.

Некоторые пользовательские интерфейсы также отделяют представление «Локальные» от представления «Наблюдаемое выражение», поэтому вы можно закрыть первое и поместить переменные, которые вам нужно видеть, во втором.

Я не знаю, позволяет ли VSCode закрыть представление локальных переменных, но если это так, это может быть способом решения этой проблемы .

...