对于我的程序,有一节我需要知道程序是否处于调试模式。我用Google搜索,我无法通过c找到我如何实现它。有谁知道我该怎么办?
该计划是学校项目,我使用信号和增量数字。以下是调试模式的内容:
当调试“打开”时,程序应每秒报告总数(使用
alarm()
)并忽略SIGUSR1。当调试“关闭”时,警报()应该关闭,程序应该像以前一样处理SIGUSR1(即报告总状态)。 SIGINT应该使您的程序报告运行总计,然后终止。
答案 0 :(得分:0)
除了用于控制NDEBUG
调用的assert()
标志外,C本身没有调试模式的概念。
因此,你可能正在谈论自己需要建立的东西。
最简单的方法可能只是提供一个包含调试状态的全局变量(初始化为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;
}
debugging
变量是全局变量,可在代码中的任何位置使用,因此您可以随意访问,设置或清除它。
您甚至可以在中断服务程序中设置或清除它,因此从外部向程序发送信号可能会改变其状态。