Employed Russian gab die richtige Lösung, aber für diejenigen, die es in einem Beispiel sehen wollen, siehe unten. Wenn Sie sich nicht sicher sind, ob Sie die .gdbinit-Datei in Ihr Home-Verzeichnis legen wollen, können Sie sie auch in das Verzeichnis legen, aus dem Sie das Programm ausführen, um zu experimentieren.
$ gcc -g atof_ex4.2.c
$ gdb ./a.out
(gdb) b 30
Breakpoint 1 at 0x1907: file atof_ex4.2.c, line 30.
(gdb) h user-defined
List of commands:
disp_vars -- User-defined
(gdb) disp_vars #this will enable the user defined canned sequence (but I haven't done run yet! So I'll this actually doesn't work yet.)
No symbol "i" in current context.
(gdb) r
Starting program: a.out
Breakpoint 1, atof (s=0xbffff028 "123.45e-6") at atof_ex4.2.c:30
30 if(s[i] != '\0')
(gdb) s # No disp_vars output yet because I have to do it AFTER 'run' command
32 if(s[i] == 'e' || s[i] == 'E')
(gdb) disp_vars # Now it will work ;)
(gdb) s
35 sign = (s[i] == '-') ? -1 : 1;
5: s[i] = 45 '-'
4: exp = 14
3: val = 123.45
2: sign = 1
1: i = 7
Natürlich steht 'r' für run, 's' für step, 'b' für break, usw. Ich habe auch einige Ausgaben weggelassen. Beachten Sie, dass ich den Befehl 'disp_vars' nach 'run' erneut eingeben musste. Vielen Dank an Employed Russian.