0

Я построил google gflags в окнах, используя визуальную студию 2015. Создана сборка отладки (поэтому установлена ​​база данных программы (/ Zi)), и я шаг за шагом через gflags_unittest_main.cc. Единичный тест проходит успешно. Однако во время отладки я не вижу содержимого переменных FLAGS _ ##.Google gflags библиотека в визуальной студии: не удается проверить переменные FLAGS_

Например, строка 1515 gflags_unittest_main.cc является

FLAGS_changed_bool2 = true; 

Я не могу увидеть значение FLAGS_changed_bool2 в окне просмотра. Я попытался добавить пространства google :: и gflags :: names перед FLAGS_changed_bool2, но он просто говорит, что идентификатор не определен. Here говорится, что вы можете получить доступ к этим флагам как обычные переменные.

Почему я не вижу значения этих переменных во время отладки? Что я могу сделать, чтобы увидеть их? возможно, какой-нибудь вариант сборки?

Я пытаюсь понять код другой библиотеки с открытым исходным кодом, которая использует gflags и содержит сотни переменных FLAGS_. Невозможность увидеть содержимое этих переменных затрудняет задачу.

+0

Отладчик ничего не знает об этих трюках с малым трюком. Посмотрите на [вывод /P] (https://msdn.microsoft.com/en-us/library/8z9z0bx6.aspx), чтобы узнать, как выглядит настоящее имя идентификатора. –

+0

Спасибо за предложение. Я сгенерировал файл gflags_unittest_main.i с параметром/P, а переменная примера, упомянутая мной, по-прежнему называется FLAGS_changed_bool2 – martinako

ответ

0

Я нашел обходное решение для этого. Каждая из переменных FLAGS_ создается внутри пространств имен, которые включают короткий идентификатор для типа (см. Макрос DEFINE_VARIABLE в gflags.h). Например, FLI для целого числа, FLB для BOOL, FLS для String, и т.д.

Так что, если добавить к окну часов следующее:

fLB::FLAGS_changed_bool2 
fLI64::FLAGS_this_is_an_int64_variable 

Я могу видеть их значения.

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

using fL##shorttype::FLAGS_##name 

после определения переменной внутри фл ## shorttype, что позволяет пользовательский код для обозначения ФЛАГИ _ ## имя непосредственно. Однако отладчик Visual Studio игнорирует это использование и требует пространства имен для каждой из этих переменных. Я предполагаю, что следующий вопрос заключается в том, как заставить визуальную студию использовать это с помощью операторов, чтобы я мог навести указатель мыши на переменную a и увидеть ее значение.

 Смежные вопросы

  • Нет связанных вопросов^_^