gdb Probleme mit stdin-Umleitung

Ich Schreibe ein Programm zum implementieren von Dinic s-max-flow-Algorithmus, der über ein Netzwerk. Die Netze geschrieben werden können, entweder von hand oder aus einer Datei geladen mit stdin-Umleitung.
Ich habe in der Lage, verwenden Sie gdb, um das Programm zu Debuggen mit kleinen Dateien (um die 30 Zeilen), aber ich habe Schwierigkeiten, wenn ich versuche zu Debuggen das Programm bei größeren Dateien (>1000 Zeilen). Der code an sich ist diese:

uint32_t read_lines = 0;
while(!feof(stdin))
{
    err = fscanf(stdin, "%u %u %u\n", &n1, &n2, &c);
    if (err != 3)
    {
         printf("read_lines=%u\n", read_lines); /*for debugging purposes*/
    }
    read_lines += 1;
    /* write to debug file */
    fprintf(debug, "line %u: %u %u %u\n", read_lines, n1, n2, c);
}

Wenn ich das Programm ohne gdb, es läuft, nicht in Ordnung ist, wie es erzeugt einen segmentation fault (das ist der Grund, warum ich versuche, gdb), aber es geht durch dieses Teil "Parsen" des Eingabe-Datei (und schreiben Sie es in die Ausgabe von debugging-Datei).
Wenn ich allerdings geben:

gdb --args ./dinic --mode=NUM --verbose=LOW
(gdb) b 61
(gdb) run < tests/numterc.in

Bekomme ich:

(gdb) Program exited with 01 code.

und wenn ich öffnen Sie die debugging-Datei es ist über 2000 Zeilen, wenn es sollte höchstens 1000, das ist die input-Datei der Länge.

Ich wiederhole, dies geschieht mit "großen" Dateien, es funktioniert korrekt mit den kleinen.
Die Frage wäre, bin ich etwas fehlt, wenn die Verwendung des gdb, oder ist das ein gdb bug?

Schreibe einen Kommentar