gpt4 book ai didi

c - 如何检查c中的debug是 "off"还是 "on"?

转载 作者:行者123 更新时间:2023-11-30 17:44:51 24 4
gpt4 key购买 nike

对于我的程序,有一个部分我需要知道程序是否处于 Debug模式。我用谷歌搜索了它,但找不到如何通过 c 实现它。有人知道我该怎么做吗?

该程序是学校项目,我使用信号和增量数字。以下是 Debug模式的说明:

When debugging is "on", your program should report the total every seconds (using alarm()) and ignore SIGUSR1. When debugging is "off" the alarm() should be turned off and your program should handle SIGUSR1 as before (i.e. report on the status of total). SIGINT should cause your program to report the running total and then terminate.

最佳答案

除了用于控制 assert() 调用的 NDEBUG 标志之外,C 本身没有 Debug模式的概念。

因此,您可能正在谈论需要自己构建的东西。

最简单的方法可能只是提供一个包含调试状态的全局变量(初始化为 false),然后在相关时间设置或清除它。

例如,如果程序的第一个参数是 -d,则此代码段将使用命令行参数来设置调试:

#include <stdio.h>

int debugging = 0; // init to false

int main (int argc, char *argv[]) {
if ((argc > 1) && (strcmp (argv[1], "-d") == 0))
debugging = 1;
printf ("Debugging is %s\n", debugging ? "on" : "off");

// rest of program.

return 0;
}

调试变量是全局的,可以在代码中的任何位置使用,因此您可以随意访问、设置或清除它。

您甚至可以在中断服务例程中设置或清除它,因此从外部向程序发送信号可以更改其状态。

关于c - 如何检查c中的debug是 "off"还是 "on"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19821603/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com