cosmopolitan/libc/stdio
Justine Tunney 14e192e5ba Introduce --strace flag for system call tracing
This is similar to the --ftrace (c function call trace) flag, except
it's less noisy since it only logs system calls to stderr. Having this
flag is valuable because (1) system call tracing tells us a lot about
the behavior of complex programs and (2) it's usually very hard to get
system call tracing on various operating systems, e.g. strace, ktrace,
dtruss, truss, nttrace, etc. Especially on Apple platforms where even
with the special boot trick, debuggers still aren't guaranteed to work.

    make -j8 o//examples
    o//examples/hello.com --strace

This is enabled by default in MODE=, MODE=opt, and MODE=dbg. In MODE=dbg
extra information will be printed.

    make -j8 MODE=dbg o/dbg/examples
    o/dbg/examples/hello.com --strace |& less

This change also changes:

- Rename IsText() → _istext()
- Rename IsUtf8() → _isutf8()
- Fix madvise() on Windows NT
- Fix empty string case of inet_ntop()
- vfork() wrapper now saves and restores errno
- Update xsigaction() to yoink syscall support
2022-03-18 18:07:28 -07:00
..
unlocked Clean old .source directive out of asm code 2022-03-18 12:43:21 -07:00
append.internal.h Fix bugs and make improvements to redbean 2021-08-06 14:18:34 -07:00
appendd.c Add function for creating hex string literals 2021-08-07 07:05:19 -07:00
appendf.c Add function for creating hex string literals 2021-08-07 07:05:19 -07:00
appendr.c Make numerous improvements 2021-09-28 01:52:34 -07:00
appends.c Add function for creating hex string literals 2021-08-07 07:05:19 -07:00
appendw.c Add function for creating hex string literals 2021-08-07 07:05:19 -07:00
appendz.c Add function for creating hex string literals 2021-08-07 07:05:19 -07:00
clearerr.c Change license 2020-12-27 17:18:44 -08:00
dirstream.c Change noinline to dontinline (#312) 2021-11-12 15:12:18 -08:00
dtoa.c Support proper %g, %f, and %a float formatting 2021-03-05 10:31:16 -08:00
dumphexc.c Add function for creating hex string literals 2021-08-07 07:05:19 -07:00
fbufsize.c Work towards improving signals and processes 2021-01-27 19:34:02 -08:00
fclose.c Remove more nonstandard stuff from cosmopolitan.h 2021-03-01 00:18:23 -08:00
fclose_s.c Change license 2020-12-27 17:18:44 -08:00
fdopen.c Make major improvements to stdio 2021-03-26 22:31:41 -07:00
feof.c Change license 2020-12-27 17:18:44 -08:00
ferror.c Change license 2020-12-27 17:18:44 -08:00
fflush.c Add /statusz page to redbean plus other enhancements 2021-04-23 18:53:57 -07:00
fflush.internal.h Remove more nonstandard stuff from cosmopolitan.h 2021-03-01 00:18:23 -08:00
fflushimpl.c Add /statusz page to redbean plus other enhancements 2021-04-23 18:53:57 -07:00
fgetc.c Fix popen_test in MODE=dbg 2021-05-01 17:13:48 -07:00
fgetln.c Improve isystem includes and magic numbers 2021-08-14 23:36:36 -07:00
fgetpos.c Change license 2020-12-27 17:18:44 -08:00
fgets.c Change license 2020-12-27 17:18:44 -08:00
fgetwc.c Make major improvements to stdio 2021-03-26 22:31:41 -07:00
fgetws.c Make major improvements to stdio 2021-03-26 22:31:41 -07:00
fileno.c Change license 2020-12-27 17:18:44 -08:00
flbf.c Work towards improving signals and processes 2021-01-27 19:34:02 -08:00
flockfile.c Add more POSIX function stubs 2021-03-02 03:27:55 -08:00
flushers.c Remove more nonstandard stuff from cosmopolitan.h 2021-03-01 00:18:23 -08:00
flushlbf.c Remove more nonstandard stuff from cosmopolitan.h 2021-03-01 00:18:23 -08:00
fmemopen.c Make major improvements to stdio 2021-03-26 22:31:41 -07:00
fopen.c Introduce --strace flag for system call tracing 2022-03-18 18:07:28 -07:00
fopenflags.c Fix issues with stdio needed for Lua 2021-03-06 19:04:26 -08:00
fpending.c Work towards improving signals and processes 2021-01-27 19:34:02 -08:00
fprintf.c Change license 2020-12-27 17:18:44 -08:00
fpurge.c Work towards improving signals and processes 2021-01-27 19:34:02 -08:00
fputc.c Make major improvements to stdio 2021-03-26 22:31:41 -07:00
fputs.c Make major improvements to stdio 2021-03-26 22:31:41 -07:00
fputwc.c Make major improvements to stdio 2021-03-26 22:31:41 -07:00
fputws.c Change license 2020-12-27 17:18:44 -08:00
fread.c Make major improvements to stdio 2021-03-26 22:31:41 -07:00
freadable.c Work towards improving signals and processes 2021-01-27 19:34:02 -08:00
freading.c Work towards improving signals and processes 2021-01-27 19:34:02 -08:00
freopen.c Fix freopen so it resets stream buffer (#61) 2021-03-07 12:12:02 -08:00
fscanf.c Change license 2020-12-27 17:18:44 -08:00
fseek.c Make major improvements to stdio 2021-03-26 22:31:41 -07:00
fseeko.c Add /statusz page to redbean plus other enhancements 2021-04-23 18:53:57 -07:00
fsetlocking.c Work towards improving signals and processes 2021-01-27 19:34:02 -08:00
fsetpos.c Change license 2020-12-27 17:18:44 -08:00
ftell.c Make major improvements to stdio 2021-03-26 22:31:41 -07:00
ftello.c Add /statusz page to redbean plus other enhancements 2021-04-23 18:53:57 -07:00
fwritable.c Work towards improving signals and processes 2021-01-27 19:34:02 -08:00
fwrite.c Improve performance of printf functions 2021-04-24 13:58:50 -07:00
fwriting.c Work towards improving signals and processes 2021-01-27 19:34:02 -08:00
getc.c Make major improvements to stdio 2021-03-26 22:31:41 -07:00
getchar.c Make major improvements to stdio 2021-03-26 22:31:41 -07:00
getdelim.c Improve memory safety 2021-10-13 17:27:13 -07:00
getline.c Change license 2020-12-27 17:18:44 -08:00
gets.c Change license 2020-12-27 17:18:44 -08:00
getwc.c Make major improvements to stdio 2021-03-26 22:31:41 -07:00
getwchar.c Make major improvements to stdio 2021-03-26 22:31:41 -07:00
hex.internal.h Add function for creating hex string literals 2021-08-07 07:05:19 -07:00
internal.h Make numerous improvements 2021-09-28 01:52:34 -07:00
mkostemp.c Change license 2020-12-27 17:18:44 -08:00
mkostemps.c Change license 2020-12-27 17:18:44 -08:00
mkostempsm.c Change license 2020-12-27 17:18:44 -08:00
mkstemp.c Change license 2020-12-27 17:18:44 -08:00
mkstemps.c Change license 2020-12-27 17:18:44 -08:00
mktemp.c Change license 2020-12-27 17:18:44 -08:00
pclose.c Work towards improving signals and processes 2021-01-27 19:34:02 -08:00
popen.c Fix popen_test in MODE=dbg 2021-05-01 17:13:48 -07:00
printf.c Support proper %g, %f, and %a float formatting 2021-03-05 10:31:16 -08:00
putc.c Make major improvements to stdio 2021-03-26 22:31:41 -07:00
putchar.c Change license 2020-12-27 17:18:44 -08:00
puts.c Make major improvements to stdio 2021-03-26 22:31:41 -07:00
putwc.c Make major improvements to stdio 2021-03-26 22:31:41 -07:00
putwchar.c Make major improvements to stdio 2021-03-26 22:31:41 -07:00
rewind.c Make major improvements to stdio 2021-03-26 22:31:41 -07:00
scanf.c Change license 2020-12-27 17:18:44 -08:00
setbuf.c Make major improvements to stdio 2021-03-26 22:31:41 -07:00
setbuffer.c Make major improvements to stdio 2021-03-26 22:31:41 -07:00
setlinebuf.c Make major improvements to stdio 2021-03-26 22:31:41 -07:00
setvbuf.c Reduce memory needed by ASAN morgue 2021-08-19 09:34:24 -07:00
spawn.c Improve system call polyfills 2021-03-08 10:07:02 -08:00
spawn.h Improve system call polyfills 2021-03-08 10:07:02 -08:00
spawna.c Add posix_spawn (#114) 2021-03-07 20:14:07 -08:00
spawna.internal.h Add posix_spawn (#114) 2021-03-07 20:14:07 -08:00
spawnf.c Improve LLVM compatibility a little bit 2021-05-16 20:34:46 -07:00
spawnp.c Add posix_spawn (#114) 2021-03-07 20:14:07 -08:00
stdbuf.c Make major improvements to stdio 2021-03-26 22:31:41 -07:00
stderr-init.S Clean old .source directive out of asm code 2022-03-18 12:43:21 -07:00
stderr.c Remove more nonstandard stuff from cosmopolitan.h 2021-03-01 00:18:23 -08:00
stdin-init.S Clean old .source directive out of asm code 2022-03-18 12:43:21 -07:00
stdin.c Remove more nonstandard stuff from cosmopolitan.h 2021-03-01 00:18:23 -08:00
stdio.h Improve memory safety 2021-10-13 17:27:13 -07:00
stdio.mk Add function for creating hex string literals 2021-08-07 07:05:19 -07:00
stdio_ext.h Work towards improving signals and processes 2021-01-27 19:34:02 -08:00
stdout-init.S Clean old .source directive out of asm code 2022-03-18 12:43:21 -07:00
stdout.c Add SNI support to redbean and improve SSL perf 2021-07-23 13:56:13 -07:00
system.c Make major improvements to redbean and libraries 2021-04-18 12:34:15 -07:00
systemexec.c Make major improvements to redbean and libraries 2021-04-18 12:34:15 -07:00
temp.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
tmpfile.c Improve LLVM compatibility a little bit 2021-05-16 20:34:46 -07:00
ungetc.c Make major improvements to stdio 2021-03-26 22:31:41 -07:00
ungetwc.c Make major improvements to stdio 2021-03-26 22:31:41 -07:00
unlocked.h Add more POSIX function stubs 2021-03-02 03:27:55 -08:00
vappendf.c Add function for creating hex string literals 2021-08-07 07:05:19 -07:00
vfprintf.c Improve performance of printf functions 2021-04-24 13:58:50 -07:00
vfscanf.c Change license 2020-12-27 17:18:44 -08:00
vprintf.c Change license 2020-12-27 17:18:44 -08:00
vscanf.c Change license 2020-12-27 17:18:44 -08:00