mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-02-01 03:53:33 +00:00
14e192e5ba
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
35 lines
1.3 KiB
C
35 lines
1.3 KiB
C
#ifndef COSMOPOLITAN_LIBC_RUNTIME_INTERNAL_H_
|
|
#define COSMOPOLITAN_LIBC_RUNTIME_INTERNAL_H_
|
|
#ifndef __STRICT_ANSI__
|
|
#include "libc/dce.h"
|
|
#include "libc/elf/struct/ehdr.h"
|
|
#include "libc/runtime/ezmap.internal.h"
|
|
#include "libc/runtime/runtime.h"
|
|
|
|
#define STACK_CEIL 0x700000000000ul
|
|
#define STACK_SIZE FRAMESIZE
|
|
|
|
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
|
COSMOPOLITAN_C_START_
|
|
|
|
extern uint32_t __ntconsolemode[2];
|
|
extern const char v_ntsubsystem[] __attribute__((__weak__));
|
|
extern const uintptr_t __fini_array_end[] __attribute__((__weak__));
|
|
extern const uintptr_t __fini_array_start[] __attribute__((__weak__));
|
|
|
|
void _init(void) hidden;
|
|
void *__cxa_finalize(void *) hidden;
|
|
void cosmo(int, char **, char **, long (*)[2]) hidden wontreturn;
|
|
void __stack_chk_fail(void) wontreturn relegated;
|
|
void __stack_chk_fail_local(void) wontreturn relegated hidden;
|
|
void _jmpstack(void *, void *, ...) hidden wontreturn;
|
|
long _setstack(void *, void *, ...) hidden;
|
|
int GetDosArgv(const char16_t *, char *, size_t, char **, size_t) hidden;
|
|
Elf64_Ehdr *MapElfRead(const char *, struct MappedFile *) hidden;
|
|
int GetDosEnviron(const char16_t *, char *, size_t, char **, size_t) hidden;
|
|
bool __intercept_flag(int *, char *[], const char *);
|
|
|
|
COSMOPOLITAN_C_END_
|
|
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
|
#endif /* ANSI */
|
|
#endif /* COSMOPOLITAN_LIBC_RUNTIME_INTERNAL_H_ */
|