这个程序如何在调试模式下运行? [关闭]
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 上的服务?