GDB Hanging-이유를 이해하지 못함

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

GDB Hanging-이유를 이해하지 못함

분류에서Dev

GDB가 소스를 찾지 못함

분류에서Dev

GDB가 기호 테이블을 찾지 못함

분류에서Dev

if (5 & 2) : is False 이유를 이해하지 못함

분류에서Dev

116 + 14 = -126 (CS50) 인 이유를 이해하지 못함

분류에서Dev

Vuex를 이해하지 못함

분류에서Dev

오류 1119를 이해하지 못함

분류에서Dev

오류를 이해하지 못함

분류에서Dev

LINQ 쿼리를 이해하지 못함

분류에서Dev

F # : .. 일치를 이해하지 못함

분류에서Dev

as3 hittestobject가 작동하지 않음, 이유를 이해하지 못함

분류에서Dev

정규 표현식 연습 시험이 이유를 이해하지 못함

분류에서Dev

루프가 멈추지 않는 이유를 이해하지 못함

분류에서Dev

이 잘못된 인수 오류를 이해하지 못함

분류에서Dev

가치 오류가 발생하고 이유를 이해하지 못함

분류에서Dev

권한 거부 오류가 발생하는 이유를 이해하지 못함

분류에서Dev

출력을 이해하지 못함

분류에서Dev

기능을 이해하지 못함

분류에서Dev

.obj 파일을 이해하지 못함

분류에서Dev

ifelse 문을 이해하지 못함

분류에서Dev

오류의 이유를 얻지 못함

분류에서Dev

gdb가 배열 요소를 인쇄하지 못한 이유는 무엇입니까?

분류에서Dev

gdb가 '#'을 포함하는 인수를 잘못 계산합니다.

분류에서Dev

이 AngularJS가 $ inject 서비스없이 작동하는 이유를 이해하지 못함

분류에서Dev

바이너리 파일 읽기를 이해하지 못함

분류에서Dev

이 F # 배열 문제를 이해하지 못함

분류에서Dev

이 C 루프를 이해하지 못함

분류에서Dev

개체 비교 기능,이 예를 이해하지 못함

분류에서Dev

유성이 패키지를 감지하지 못함

Related 관련 기사

뜨겁다태그

보관