% gdb `which printf` src/usr.bin/printf Reading symbols from /usr/bin/printf...Reading symbols from /usr/libdata/debug//usr/bin/printf.debug...done. done. (gdb) b 173 Breakpoint 1 at 0x1850: file /usr/src/usr.bin/printf/printf.c, line 173. (gdb) b conv_escape Breakpoint 2 at 0x1130: file /usr/src/usr.bin/printf/printf.c, line 428. (gdb) r "\\" Starting program: /usr/bin/printf "\\" Breakpoint 1, main (argc=, argv=0x7f7fff7501b0) at /usr/src/usr.bin/printf/printf.c:173 173 fmt = conv_escape(fmt, &c_ch); (gdb) p fmt $1 = 0x7f7fff7508d9 "" (gdb) p *fmt $2 = 0 '\000' (gdb) n Breakpoint 2, conv_escape (str=0x7f7fff7508d9 "", conv_ch=0x7f7fff750128 "\200\302\344\327{") at /usr/src/usr.bin/printf/printf.c:428 428 { (gdb) p *str $3 = 0 '\000' (gdb) n 433 ch = *str++; (gdb) n 428 { (gdb) n 433 ch = *str++; (gdb) 435 switch (ch) { (gdb) p ch $4 = 0 '\000' (gdb) $5 = 0 '\000' (gdb) n 473 warnx("unknown escape sequence `\\%c'", ch); (gdb) printf: unknown escape sequence `\' 474 rval = 1; (gdb) 476 break; (gdb) n 479 *conv_ch = value; (gdb) p value $6 = 0 '\000' (gdb) n 481 } (gdb) main (argc=, argv=0x7f7fff7501b0) at /usr/src/usr.bin/printf/printf.c:174 174 putchar(c_ch); (gdb) n 173 fmt = conv_escape(fmt, &c_ch); (gdb) 174 putchar(c_ch); (gdb) 171 if (ch == '\\') { (gdb) 177 if (ch != '%' || (*fmt == '%' && ++fmt)) { (gdb) 178 (void)putchar(ch); (gdb) 170 for (fmt = format; (ch = *fmt++) != '\0';) { (gdb) 171 if (ch == '\\') { (gdb) 177 if (ch != '%' || (*fmt == '%' && ++fmt)) { (gdb) 178 (void)putchar(ch); (gdb) 170 for (fmt = format; (ch = *fmt++) != '\0';) { (gdb) 171 if (ch == '\\') { (gdb) 177 if (ch != '%' || (*fmt == '%' && ++fmt)) { (gdb) 178 (void)putchar(ch); (gdb) n 170 for (fmt = format; (ch = *fmt++) != '\0';) { (gdb) 171 if (ch == '\\') { (gdb) 177 if (ch != '%' || (*fmt == '%' && ++fmt)) { (gdb) 178 (void)putchar(ch); (gdb) 170 for (fmt = format; (ch = *fmt++) != '\0';) { (gdb) 171 if (ch == '\\') { (gdb) 177 if (ch != '%' || (*fmt == '%' && ++fmt)) { (gdb) 178 (void)putchar(ch); (gdb) 170 for (fmt = format; (ch = *fmt++) != '\0';) { (gdb) 171 if (ch == '\\') { (gdb) 177 if (ch != '%' || (*fmt == '%' && ++fmt)) { (gdb) 178 (void)putchar(ch); (gdb) 170 for (fmt = format; (ch = *fmt++) != '\0';) { (gdb) 171 if (ch == '\\') { (gdb) 177 if (ch != '%' || (*fmt == '%' && ++fmt)) { (gdb) 178 (void)putchar(ch); (gdb) 170 for (fmt = format; (ch = *fmt++) != '\0';) { (gdb) 171 if (ch == '\\') { (gdb) 177 if (ch != '%' || (*fmt == '%' && ++fmt)) { (gdb) 178 (void)putchar(ch); (gdb) 170 for (fmt = format; (ch = *fmt++) != '\0';) { (gdb) 171 if (ch == '\\') { (gdb) 177 if (ch != '%' || (*fmt == '%' && ++fmt)) { (gdb) 178 (void)putchar(ch); (gdb) 170 for (fmt = format; (ch = *fmt++) != '\0';) { (gdb) 171 if (ch == '\\') { (gdb) 177 if (ch != '%' || (*fmt == '%' && ++fmt)) { (gdb) 178 (void)putchar(ch); (gdb) 170 for (fmt = format; (ch = *fmt++) != '\0';) { (gdb) 171 if (ch == '\\') { (gdb) 177 if (ch != '%' || (*fmt == '%' && ++fmt)) { (gdb) 178 (void)putchar(ch); (gdb) 170 for (fmt = format; (ch = *fmt++) != '\0';) { (gdb) 171 if (ch == '\\') { (gdb) 177 if (ch != '%' || (*fmt == '%' && ++fmt)) { (gdb) 178 (void)putchar(ch); (gdb) 170 for (fmt = format; (ch = *fmt++) != '\0';) { (gdb) 171 if (ch == '\\') { (gdb) 177 if (ch != '%' || (*fmt == '%' && ++fmt)) { (gdb) 178 (void)putchar(ch); (gdb) 170 for (fmt = format; (ch = *fmt++) != '\0';) { (gdb) 171 if (ch == '\\') { (gdb) 177 if (ch != '%' || (*fmt == '%' && ++fmt)) { (gdb) 178 (void)putchar(ch); (gdb) 170 for (fmt = format; (ch = *fmt++) != '\0';) { (gdb) 171 if (ch == '\\') { (gdb) 177 if (ch != '%' || (*fmt == '%' && ++fmt)) { (gdb) 178 (void)putchar(ch); (gdb) 170 for (fmt = format; (ch = *fmt++) != '\0';) { (gdb) 171 if (ch == '\\') { (gdb) 177 if (ch != '%' || (*fmt == '%' && ++fmt)) { (gdb) 178 (void)putchar(ch); (gdb) 170 for (fmt = format; (ch = *fmt++) != '\0';) { (gdb) 171 if (ch == '\\') { (gdb) 177 if (ch != '%' || (*fmt == '%' && ++fmt)) { (gdb) 178 (void)putchar(ch); (gdb) 170 for (fmt = format; (ch = *fmt++) != '\0';) { (gdb) 171 if (ch == '\\') { (gdb) 177 if (ch != '%' || (*fmt == '%' && ++fmt)) { (gdb) 178 (void)putchar(ch); (gdb) 170 for (fmt = format; (ch = *fmt++) != '\0';) { (gdb) 171 if (ch == '\\') { (gdb) 177 if (ch != '%' || (*fmt == '%' && ++fmt)) { (gdb) 178 (void)putchar(ch); (gdb) 170 for (fmt = format; (ch = *fmt++) != '\0';) { (gdb) 171 if (ch == '\\') { (gdb) 177 if (ch != '%' || (*fmt == '%' && ++fmt)) { (gdb) 178 (void)putchar(ch); (gdb) 170 for (fmt = format; (ch = *fmt++) != '\0';) { (gdb) 171 if (ch == '\\') { (gdb) 177 if (ch != '%' || (*fmt == '%' && ++fmt)) { (gdb) 178 (void)putchar(ch); (gdb) 170 for (fmt = format; (ch = *fmt++) != '\0';) { (gdb) 171 if (ch == '\\') { (gdb) 177 if (ch != '%' || (*fmt == '%' && ++fmt)) { (gdb) 178 (void)putchar(ch); (gdb) 170 for (fmt = format; (ch = *fmt++) != '\0';) { (gdb) 171 if (ch == '\\') { (gdb) 177 if (ch != '%' || (*fmt == '%' && ++fmt)) { (gdb) 178 (void)putchar(ch); (gdb) 170 for (fmt = format; (ch = *fmt++) != '\0';) { (gdb) 171 if (ch == '\\') { (gdb) 177 if (ch != '%' || (*fmt == '%' && ++fmt)) { (gdb) 178 (void)putchar(ch); (gdb) 170 for (fmt = format; (ch = *fmt++) != '\0';) { (gdb) p fmt $8 = 0x7f7fff7508f2 "c/acronyms /usr/share/misc/acronyms-o /usr/share/misc/acronyms.comp /home/leot/.acronyms" (gdb) n 171 if (ch == '\\') { (gdb) 177 if (ch != '%' || (*fmt == '%' && ++fmt)) { (gdb) p fmt $9 = 0x7f7fff7508f3 "/acronyms /usr/share/misc/acronyms-o /usr/share/misc/acronyms.comp /home/leot/.acronyms" (gdb) c Continuing. ACRONYMDB=/usr/share/misc/acronyms /usr/share/misc/acronyms-o /usr/share/misc/acronyms.comp /home/leot/.acronyms[Inferior 1 (process 2385) exited with code 01] (gdb)