RiseOfDeath
@RiseOfDeath
Диванный эксперт.

Почему fgets может странно вести себя при отладке через gdbserver?

Собственно проблема такова - есть программа, которая запрашивает через fgets данные у пользователя.
При работе без отладчика все ок. Если же запустить ее через gdbserver - то первые два (именно два, всегда, ни больше, ни меньше) fgets`а отрабатывают как положено, а третий просто "пропускается".

Что это вообще может быть?

upd.

"Рабочий" пример:

#include <stdio.h>
#include <stdlib.h>

char tmp[255]={0};

int main(void) {

	printf("Type somthing:");
	if(NULL == fgets(tmp, sizeof(tmp)-1, stdin))
	{
		printf("Unable to read string\n");
	}

	printf("You write '%s'",tmp);

	tmp[0]=0;

	if(NULL == fgets(tmp, sizeof(tmp)-1, stdin))
	{
		printf("Unable to read string\n");
	}
	printf("You write '%s'",tmp);

	tmp[0]=0;

	if(NULL == fgets(tmp, sizeof(tmp)-1, stdin))
	{
		printf("Unable to read string\n");
	}
	printf("You write '%s'",tmp);

	tmp[0]=0;

	if(NULL == fgets(tmp, sizeof(tmp)-1, stdin))
	{
		printf("Unable to read string\n");
	}
	printf("You write '%s'",tmp);

	tmp[0]=0;

	return EXIT_SUCCESS;
}


Мой "диалог":

Type somthing:
Test
Test// Это эхом возврат того, что я ввожу.

You write 'Test
'You write '
'
2nd try
2nd try// Это эхом возврат того, что я ввожу.

You write '2nd try
'You write '
'


upd.

Локализовал сей глюк до эклипсовской консоли, либо до Allocate Console (точно не знаю).

Вобщем видимо собственно GDB тут вообще непричем.
  • Вопрос задан
  • 260 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы