调试时字符串为空,使用时更正

时间:2018-03-29 09:04:08

标签: c++

如果在调试器中复制(而不是通过引用传递)字符串,我看不到字符串的值(在CLion和普通gdb中)。

我用来复制它的课程如下:

struct A{
    explicit A(std::string s) {
        std::ifstream in(s, std::ios__base::in); 
        in.close();
    }
}
在整个构造函数的代码中,

s在调试器中为空,但ifstream正确读取其值。

以下两个屏幕截图。

Debugging on CLion (image)

Debugging on CLion (image 2)

使用C ++ 17和no / all优化会发生这种情况。

0 个答案:

没有答案