【问题标题】:Console program in debug/release调试/发布中的控制台程序
【发布时间】:2013-03-28 13:06:33
【问题描述】:

我使用 C++ 中的 Microsoft Visual Studio 2012 Ultimate IDE 构建了非常简单的 win32 控制台程序;

这是代码:

int _tmain(int argc, _TCHAR* argv[])
{
    int i = 0;
    i++;
    return = 0
}

逐行调试代码,我注意到了这一点:

在调试 x64 模式下,argc = 1argv[0] = the program's path

在发布 x64 模式下,argc = some random large numberargv[0] = some random path or simply 0x00000001

这是为什么?

任何帮助将不胜感激。

【问题讨论】:

  • 添加cout << argc 看看会发生什么。优化器将无法忽略该变量。

标签: c++ winapi console-application


【解决方案1】:

发布模式的默认构建选项不会让您在发布模式下进行合理的调试。编译器在发布模式下使用的优化意味着编译后的代码看起来可能与您编写的代码完全不同(但逻辑上相同)。

已经有很好的答案了,见How to debug in release mode?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-18
    • 1970-01-01
    • 2023-01-30
    • 1970-01-01
    • 1970-01-01
    • 2020-01-11
    相关资源
    最近更新 更多