Собственно проблема такова - есть программа, которая запрашивает через 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 тут вообще непричем.