cosmopolitan/libc/intrin
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
..
addvdi3.S Clean old .source directive out of asm code 2022-03-18 12:43:21 -07:00
addvsi3.S Clean old .source directive out of asm code 2022-03-18 12:43:21 -07:00
addvti3.S Clean old .source directive out of asm code 2022-03-18 12:43:21 -07:00
asan.c Introduce --strace flag for system call tracing 2022-03-18 18:07:28 -07:00
asan.internal.h Make improvements 2022-03-16 13:40:10 -07:00
asancodes.h Make improvements 2022-03-16 13:40:10 -07:00
assertfail.c Make improvements 2022-03-16 13:40:10 -07:00
atexit.c Improve memory safety 2021-10-13 17:27:13 -07:00
bzero.c Change noinline to dontinline (#312) 2021-11-12 15:12:18 -08:00
cxaatexit.c Improve memory safety 2021-10-13 17:27:13 -07:00
cxablocks.c Improve memory safety 2021-10-13 17:27:13 -07:00
cxafinalize.c Improve memory safety 2021-10-13 17:27:13 -07:00
exit.greg.c Introduce --strace flag for system call tracing 2022-03-18 18:07:28 -07:00
fatalbuf.c Make numerous improvements 2021-09-28 01:52:34 -07:00
ftrace.c Make exciting improvements 2022-03-18 03:02:00 -07:00
getenv.c Introduce --strace flag for system call tracing 2022-03-18 18:07:28 -07:00
intrin.mk Fix build flags for kprintf() 2022-03-17 13:54:16 -07:00
isatleastwindows10.greg.c Make exciting improvements 2022-03-18 03:02:00 -07:00
isdebuggerpresent.greg.c Make exciting improvements 2022-03-18 03:02:00 -07:00
isrunningundermake.c Make exciting improvements 2022-03-18 03:02:00 -07:00
kprintf.greg.c Make improvements 2022-03-16 13:40:10 -07:00
kprintf.h Make improvements 2022-03-16 13:40:10 -07:00
kstarttsc.c Make improvements 2022-03-16 13:40:10 -07:00
macros.h Add MODE=optlinux build mode (#141) 2021-10-14 19:36:49 -07:00
memcmp.c Fix build flags for kprintf() 2022-03-17 13:54:16 -07:00
memmove.c Improve memory safety 2021-10-13 17:27:13 -07:00
mempcpy.c Make numerous improvements 2021-09-28 01:52:34 -07:00
memset.c Change noinline to dontinline (#312) 2021-11-12 15:12:18 -08:00
mpsadbw.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
mpsadbw.h Make minor improvements 2020-12-23 23:42:56 -08:00
mpsadbws.S Remove more nonstandard stuff from cosmopolitan.h 2021-03-01 00:18:23 -08:00
mulvdi3.S Clean old .source directive out of asm code 2022-03-18 12:43:21 -07:00
mulvsi3.S Clean old .source directive out of asm code 2022-03-18 12:43:21 -07:00
mulvti3.S Clean old .source directive out of asm code 2022-03-18 12:43:21 -07:00
negvdi2.S Clean old .source directive out of asm code 2022-03-18 12:43:21 -07:00
negvsi2.S Clean old .source directive out of asm code 2022-03-18 12:43:21 -07:00
negvti2.S Clean old .source directive out of asm code 2022-03-18 12:43:21 -07:00
nocolor.c Make exciting improvements 2022-03-18 03:02:00 -07:00
nomultics.c Make improvements 2022-03-16 13:40:10 -07:00
ntconsolemode.c Make improvements 2022-03-16 13:40:10 -07:00
ntgetversion.c Add MODE=optlinux build mode (#141) 2021-10-14 19:36:49 -07:00
oldstack.c Add MODE=optlinux build mode (#141) 2021-10-14 19:36:49 -07:00
onarithmeticoverflow.S Clean old .source directive out of asm code 2022-03-18 12:43:21 -07:00
pabsb.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
pabsb.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
pabsd.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
pabsd.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
pabsw.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
pabsw.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
packssdw.c Remove more nonstandard stuff from cosmopolitan.h 2021-03-01 00:18:23 -08:00
packssdw.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
packsswb.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
packsswb.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
packusdw.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
packusdw.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
packuswb.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
packuswb.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
paddb.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
paddb.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
paddd.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
paddd.h Remove undefined behaviors 2021-05-16 11:16:28 -07:00
paddq.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
paddq.h Remove undefined behaviors 2021-05-16 11:16:28 -07:00
paddsb.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
paddsb.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
paddsw.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
paddsw.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
paddusb.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
paddusb.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
paddusw.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
paddusw.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
paddw.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
paddw.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
palignr.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
palignr.h Make minor improvements 2020-12-23 23:42:56 -08:00
palignrs.S Remove more nonstandard stuff from cosmopolitan.h 2021-03-01 00:18:23 -08:00
pand.c Change license 2020-12-27 17:18:44 -08:00
pand.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
pandn.c Change license 2020-12-27 17:18:44 -08:00
pandn.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
pavgb.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
pavgb.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
pavgw.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
pavgw.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
pcmpeqb.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
pcmpeqb.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
pcmpeqd.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
pcmpeqd.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
pcmpeqw.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
pcmpeqw.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
pcmpgtb.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
pcmpgtb.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
pcmpgtd.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
pcmpgtd.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
pcmpgtw.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
pcmpgtw.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
pdep.c Change license 2020-12-27 17:18:44 -08:00
pdep.h Make improvements 2020-12-01 03:43:40 -08:00
pext.c Change license 2020-12-27 17:18:44 -08:00
pext.h Make improvements 2020-12-01 03:43:40 -08:00
phaddd.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
phaddd.h Remove undefined behaviors 2021-05-16 11:16:28 -07:00
phaddsw.c Remove more nonstandard stuff from cosmopolitan.h 2021-03-01 00:18:23 -08:00
phaddsw.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
phaddw.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
phaddw.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
phsubd.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
phsubd.h Remove undefined behaviors 2021-05-16 11:16:28 -07:00
phsubsw.c Remove more nonstandard stuff from cosmopolitan.h 2021-03-01 00:18:23 -08:00
phsubsw.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
phsubw.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
phsubw.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
pmaddubsw.c Remove more nonstandard stuff from cosmopolitan.h 2021-03-01 00:18:23 -08:00
pmaddubsw.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
pmaddwd.c Change license 2020-12-27 17:18:44 -08:00
pmaddwd.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
pmaxsw.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
pmaxsw.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
pmaxub.c Remove more nonstandard stuff from cosmopolitan.h 2021-03-01 00:18:23 -08:00
pmaxub.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
pminsw.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
pminsw.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
pminub.c Remove more nonstandard stuff from cosmopolitan.h 2021-03-01 00:18:23 -08:00
pminub.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
pmovmskb.c Change license 2020-12-27 17:18:44 -08:00
pmovmskb.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
pmulhrsw.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
pmulhrsw.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
pmulhuw.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
pmulhuw.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
pmulhw.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
pmulhw.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
pmulld.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
pmulld.h Remove undefined behaviors 2021-05-16 11:16:28 -07:00
pmullw.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
pmullw.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
pmuludq.c Change license 2020-12-27 17:18:44 -08:00
pmuludq.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
por.c Change license 2020-12-27 17:18:44 -08:00
por.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
printsystemmappings.greg.c Make exciting improvements 2022-03-18 03:02:00 -07:00
psadbw.c Remove more nonstandard stuff from cosmopolitan.h 2021-03-01 00:18:23 -08:00
psadbw.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
pshufb.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
pshufb.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
pshufd.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
pshufd.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
pshufhw.c Change license 2020-12-27 17:18:44 -08:00
pshufhw.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
pshuflw.c Change license 2020-12-27 17:18:44 -08:00
pshuflw.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
pshufw.c Change license 2020-12-27 17:18:44 -08:00
pshufw.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
psignb.c Change license 2020-12-27 17:18:44 -08:00
psignb.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
psignd.c Remove undefined behaviors 2021-05-16 11:16:28 -07:00
psignd.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
psignw.c Change license 2020-12-27 17:18:44 -08:00
psignw.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
pslld.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
pslld.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
pslldq.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
pslldq.h Make minor improvements 2020-12-23 23:42:56 -08:00
pslldqs.S Remove more nonstandard stuff from cosmopolitan.h 2021-03-01 00:18:23 -08:00
pslldv.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
psllq.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
psllq.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
psllqv.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
psllw.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
psllw.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
psllwv.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
psrad.c Remove undefined behaviors 2021-05-16 11:16:28 -07:00
psrad.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
psradv.c Remove undefined behaviors 2021-05-16 11:16:28 -07:00
psraw.c Remove undefined behaviors 2021-05-16 11:16:28 -07:00
psraw.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
psrawv.c Remove undefined behaviors 2021-05-16 11:16:28 -07:00
psrld.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
psrld.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
psrldq.c Introduce --strace flag for system call tracing 2022-03-18 18:07:28 -07:00
psrldq.h Make minor improvements 2020-12-23 23:42:56 -08:00
psrldqs.S Remove more nonstandard stuff from cosmopolitan.h 2021-03-01 00:18:23 -08:00
psrldv.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
psrlq.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
psrlq.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
psrlqv.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
psrlw.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
psrlw.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
psrlwv.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
psubb.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
psubb.h Make terminal ui binaries work well everywhere 2020-10-19 06:38:31 -07:00
psubd.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
psubd.h Remove undefined behaviors 2021-05-16 11:16:28 -07:00
psubq.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
psubq.h Remove undefined behaviors 2021-05-16 11:16:28 -07:00
psubsb.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
psubsb.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
psubsw.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
psubsw.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
psubusb.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
psubusb.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
psubusw.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
psubusw.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
psubw.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
psubw.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
punpckhbw.c Change license 2020-12-27 17:18:44 -08:00
punpckhbw.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
punpckhdq.c Change license 2020-12-27 17:18:44 -08:00
punpckhdq.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
punpckhqdq.c Change license 2020-12-27 17:18:44 -08:00
punpckhqdq.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
punpckhwd.c Change license 2020-12-27 17:18:44 -08:00
punpckhwd.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
punpcklbw.c Change license 2020-12-27 17:18:44 -08:00
punpcklbw.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
punpckldq.c Change license 2020-12-27 17:18:44 -08:00
punpckldq.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
punpcklqdq.c Change license 2020-12-27 17:18:44 -08:00
punpcklqdq.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
punpcklwd.c Change license 2020-12-27 17:18:44 -08:00
punpcklwd.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
pxor.c Change license 2020-12-27 17:18:44 -08:00
pxor.h Add x86_64-linux-gnu emulator 2020-08-25 04:43:42 -07:00
quick_exit.c Introduce --strace flag for system call tracing 2022-03-18 18:07:28 -07:00
repmovsb.h Get address sanitizer mostly working 2020-09-03 05:44:37 -07:00
repstosb.h Make improvements 2020-09-14 00:02:34 -07:00
shufpd.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
shufpd.h Fix bugs and have emulator emulate itself 2020-08-31 05:17:31 -07:00
shufps.c Make SSL handshakes much faster 2021-07-11 23:17:47 -07:00
shufps.h Fix bugs and have emulator emulate itself 2020-08-31 05:17:31 -07:00
somanyasan.S Introduce --strace flag for system call tracing 2022-03-18 18:07:28 -07:00
stracef.greg.c Introduce --strace flag for system call tracing 2022-03-18 18:07:28 -07:00
strlen.c Make fixes, improvements, and chibicc python bindings 2021-10-08 08:41:57 -07:00
subvdi3.S Clean old .source directive out of asm code 2022-03-18 12:43:21 -07:00
subvsi3.S Clean old .source directive out of asm code 2022-03-18 12:43:21 -07:00
subvti3.S Clean old .source directive out of asm code 2022-03-18 12:43:21 -07:00
syscall.S Improve memory safety 2021-10-13 17:27:13 -07:00
tpenc.S Clean old .source directive out of asm code 2022-03-18 12:43:21 -07:00
ubsan.c Make improvements 2022-03-16 13:40:10 -07:00
vforked.c Make improvements 2022-03-16 13:40:10 -07:00