Visual Studio 中的 Google gflags 库:无法检查FLAGS_变量
Google gflags library in visual studio: Can't inspect FLAGS_ variables
我使用visual studio 2015在windows中构建了谷歌gflags。构建的是Debug构建(因此设置了Program Database(/Zi)),我正在逐步完成gflags_unittest_main.cc。单元测试成功通过。然而,在调试时,我看不到FLAGS_##变量的内容。
例如,gflags_unittest_main.cc的1515行是
FLAGS_changed_bool2 = true;
我在观察窗口中看不到FLAGS_changed_bool2的值。我尝试在FLAGS_changed_bool2前面添加google::和gflags::名称空间,但它只是说标识符是未定义的。在这里,它说你可以访问这些标志,就像一个正常的变量。
为什么我在调试时看不到这些变量的值?我该怎么看他们?也许是一些构建选项?
我正在尝试理解另一个使用gflags并有数百个FLAGS_变量的开源库的代码。看不到这些变量的内容会使任务更加困难。
我找到了一个解决方法。每个FLAGS_变量都是在命名空间中创建的,命名空间中包括类型的短标识符(请参阅gflags.h中的DEFINE_VARIABLE宏)。例如,fLI表示整数,fLB表示布尔,fLS表示字符串等。
因此,如果我在观察窗口中添加以下内容:
fLB::FLAGS_changed_bool2
fLI64::FLAGS_this_is_an_int64_variable
我能看到他们的价值观。
DEFINE_VARIABLE宏添加一个using语句
using fL##shorttype::FLAGS_##name
在fL##shorttype中定义变量之后,这允许用户代码直接引用FLAGS_##名称。但是,Visual Studio调试器使用忽略了这一点,并且需要这些变量中每一个的命名空间。我想下一个问题是如何让visualstudio使用这些using语句,这样我就可以将鼠标指针悬停在变量上,查看其值。
- valgrind-hellgrind与泄漏检查的结果不同
- C++模板来检查友元函数的存在
- 检查输入是否不是整数或数字
- 试图让变量检查数组中的某些内容
- 检查值是否在集合p1和p2中,但不在p3中
- C++概念:如何使用'concept'检查模板化结构的属性?
- 概念TS检查忽略私有访问修饰符
- 检查 std::shared_ptr<> 的当前底层类型是否为 T
- 在c++中检查长方体是否尽可能快地重叠(无迭代)
- 如何在C++中检查2D数组中负值的输入验证
- C++:正在检查LinkedList中的回文-递归方法-错误
- 使用for循环检查数组中的重复项
- 如何检查一个c++字符串中有多少相同的字符/数字
- 检查不带转换的扫描格式
- 如何检查线程是否锁定
- 清除前检查矢量
- 如何处理来自核心指南检查器的关于gsl::at的静态分析警告
- C++LDAP检查用户是否是特定组的成员
- 检查TCHAR数组输入是否为带符号整数C++
- 用概念检查属性的类型