Просмотр содержимого переменной в режиме отладки?(Кроме точек останова) - PullRequest
0 голосов
/ 15 мая 2011

Я пишу программу, которая вычисляет набор Мандельброта (а затем отображает его в OpenGL под Windows), чтобы использовать методы параллельного программирования.

Я должен продемонстрировать использование потоков, мьютексов и семафоров;поэтому в данный момент я вычисляю набор, используя несколько потоков (разбивая набор по горизонтали) и синхронизируя каждый поток, а затем добавляю его к итогу (итог - глобальная переменная, защищенная мьютексом)Хотели бы вы иметь возможность просматривать итоги в режиме отладки - есть ли относительно простой способ сделать это, кроме рендеринга суммы в окне OpenGL или проверки содержимого переменной с точками останова?

Ответы [ 3 ]

2 голосов
/ 15 мая 2011

Если вы работаете в Windows, вы можете использовать OutputDebugString и просматривать результаты с помощью инструмента DebugView.Недостатком является то, что он будет печатать каждое значение в новой строке, а не обновлять его на месте (что, я думаю, вам больше нравится).

Если вы хотите просмотреть значение, которое будет обновляться на месте,Вы могли бы, вероятно, использовать Счетчики производительности , но это намного больше хлопот: во-первых, ваша программа должна была бы реализовать поставщика .А во-вторых, вам нужно написать другую программу (потребитель), чтобы отслеживать этот счетчик и отображать его.Но если вам нужна максимальная гибкость, этот API великолепен, поскольку он означает, что многие программы могут наблюдать за счетчиками провайдера, и их можно, например, записать в файл и воспроизвести или преобразовать в график.

2 голосов
/ 15 мая 2011

Самый простой способ - каким-то образом вывести сообщение в поток отладки, а затем просмотреть его с помощью вашей IDE.Под окнами вы можете использовать: OuputDebugString (LPCTSTR lpOutputString);

0 голосов
/ 15 мая 2011

Вы должны быть в состоянии прочитать глобальную переменную из отладчика.Вы пробовали?

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