这个程序如何在调试模式下运行? [关闭]

Posted

技术标签:

【中文标题】这个程序如何在调试模式下运行? [关闭]【英文标题】:How is this program running in debug mode? [closed] 【发布时间】:2017-08-06 19:06:08 【问题描述】:

我对今天看到的东西感到困惑

在 Linux 终端中给出了以下命令:

g++ hw.cpp 
./a.out
./a.out debug

第二条命令执行程序,输出“Hello, World”

第三条命令似乎在调试模式下运行程序,并使相同的程序输出“将输出发送到终端”“Hello, World”

我没有看到源代码

如何让我自己的程序在调试模式下只输出某些行?

【问题讨论】:

我没有源代码,如果有我就不会问了 第三种情况下的程序(不是第二种,请至少尝试一下才能准确)正在查看 main() 函数的 commandlime 参数,如果有的话,做一些不同的事情这是字符串“调试”。 抱歉修复了,我去看看 main() 参数 【参考方案1】:

来源在hw.cpp,显然是在使用某种参数解析来查找“调试”。

例如:

#include <stdio.h>
#include <string.h>

int main(int argc, char *argv[])

  if (argc > 1 && strcmp(argv[1], "debug") == 0)
    printf("Hello World\n");

  return 0;

如果您想做更多的参数解析,那么我建议您查看getopt

【讨论】:

谢谢,我没有 hw.cpp 的源代码,但如果我可以让它工作,我会告诉你 再次反对票是怎么回事?这正好回答了这个问题! 我知道,这是一个诚实的新手提出的诚实问题,这里不需要破坏性批评 @BaummitAugen 哦,很抱歉那里有一个字符错误。反对票很好,但没有建设性批评的反对票是愚蠢的。作者到底是怎么知道他们为什么被否决的?问题很广泛,提供的代码是一个简单的示例,请克服它。 @BaummitAugen C,它是 C++ 的基础,不会以任何形式或形式被弃用。我同意应该遵守最佳实践,并且您可能正确地指出它应该使用 std::string 等......我的观点仍然成立。除非您是盲人,否则 SO 会在您投反对票时通知您,您应该发表评论,告知发布者您为什么投反对票以帮助他们!不说为什么就投反对票是愚蠢的,你不能指望每个人都知道一切。

以上是关于这个程序如何在调试模式下运行? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何在调试模式下运行 wildfly,作为 Windows 上的服务?

如何调试在开发模式下运行的 Quarkus 应用程序?

如何确定是不是启用了“调试模式”

在调试模式下运行程序非常慢

如何使用 Android Studio 在发布模式下调试 Android App

在调试模式下执行控制台应用程序后,如何让 Visual Studio 暂停?