如何调试此分段错误?

时间:2013-06-20 05:50:51

标签: c debugging gdb segmentation-fault

我没有使用80行C来填充此页面,而是将其上传到pastebin。 http://pastebin.com/b6UDpw0J

该计划的其余部分有效。我可以使用标志-x和-cx没有任何问题,但使用-c 导致分段错误。我试图使用DDD和普通的gdb来调试它,但无论出于何种原因,我一直在“正常退出1(进程7355)”,并且每当我使用“backtrace”时,我都会得到“无堆栈”。

你们如何调试你的程序?你调试这个的方法是什么?

此外,我的代码有任何明显的问题吗?也许我做过一些愚蠢的初学者事情,我可以更高效地完成任务?

由于

1 个答案:

答案 0 :(得分:0)

下面:

void capitalize(char *s){
    while(*s != '\0')
        if(islower(*s))
            *(s++) += ('a' - 'A');
}

你应该增加s,即使它不低。还存在一个strupr函数。

此外,在main中你应该检查argc以了解有多少参数。你不能假设argv [argc] == 0。