GDB挂起-无法理解原因

trn450

我正在阅读《 The C Programming Language》一书,并完成所有示例,并在GDB中四处浏览以查看发生了什么。

在下面的示例代码中,目标是评估几行文本以确定哪一行最长。我以为我自己的程序失败了,因为gdb挂在了调用的for循环中getchar()我遵循了回溯,找到了罪魁祸首的功能,但无法确定确切的问题。然后,我对示例代码进行了相同的处理,并且在for调用循环中发生了完全相同的问题getchar()

// file: ch1/ex16.c
// OBJECTIVE: Revise the main routine o the lnogest program
// so it will correctly print the length of arbitrarily long
// lines and as much as possible of the text.

#include <stdio.h>

#define MAXLINE 1000

int getLine(char line[], int maxline);
void copy(char to[], char from[]);

int main()
{
  int len, max;
  char line[MAXLINE], longest [MAXLINE];

  max = 0;
  while ((len = getLine(line, MAXLINE)) > 0) {
    if (len > max) {
      max = len;
      copy(longest, line);
    }
  }

  if (max > 0) {
    printf("%s", longest);
  }

  return 0;
}

int getLine(char s[], int lim)
{
  int c, i;

  for (i=0; i < lim - 1 && (c=getchar()) != EOF && c != '\n'; ++i) {
    s[i] = c;
  }
  if (c == '\n') {
    s[i] = c;
    ++i;
  }
  s[i] = '\0';

  return i;
}

void copy(char to[], char from[])
{
  int i = 0;

  while ((to[i] = from[i]) != '\0'){
    ++i;
  }
}
trn450

与通过外壳执行程序时不同,gdb不会接受^ d(ctrl + d)作为EOF。多亏了Duck上面提供的注释,我发现如果我通过标准输入gdb文件提供给它,就可以解决此问题。

前任:

(gdb)运行<file.txt

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法理解空指针的原因

来自分类Dev

Excel VBA宏跳出循环,无法理解原因

来自分类Dev

无法理解递归

来自分类Dev

无法理解错误:

来自分类Dev

无法理解连接

来自分类Dev

无法理解的NullPointerException

来自分类Dev

无法理解错误

来自分类Dev

无法理解警告

来自分类Dev

无法理解错误

来自分类Dev

无法理解 if 命令

来自分类Dev

无法理解为什么正常停止线程会在Windows下的(wx)Python中挂起该线程的其余执行代码

来自分类Dev

使用“ LoadImageA()”时,无法从资源中的位图获取图像句柄,并且无法理解原因

来自分类Dev

无法理解Google Translate REST API为什么返回HTTP 400的原因

来自分类Dev

非常简单的代码,并出现错误C2712,无法理解原因

来自分类Dev

访问字符字符串时无法理解细分错误的原因

来自分类Dev

无法理解浮点和对象实例之间进行比较的原因

来自分类Dev

我的Google地图DIV位于其他所有内容之上-无法理解原因

来自分类Dev

Spring JPA无法理解此JSON。可能是什么原因?

来自分类Dev

无法理解Google Translate REST API为什么返回HTTP 400的原因

来自分类Dev

出于无法理解的原因,我的代码编写了两次

来自分类Dev

无法理解HDFS可以扩展到大量并发客户端的原因

来自分类Dev

Java和JGraphT-无法理解结果-传递值/引用问题或其他原因?

来自分类Dev

无法理解邮件GCM

来自分类Dev

无法理解getw的输出

来自分类Dev

无法理解ftrace输出

来自分类Dev

无法理解Class对象

来自分类Dev

无法理解android asyncTask

来自分类Dev

无法理解BeautifulSoup过滤

来自分类Dev

Haskell:无法理解瓶颈