Skip to content

Instantly share code, notes, and snippets.

@lupyuen
Created January 29, 2024 00:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lupyuen/3e650bd6ad72b2e8ee8596858bc94f36 to your computer and use it in GitHub Desktop.
Save lupyuen/3e650bd6ad72b2e8ee8596858bc94f36 to your computer and use it in GitHub Desktop.
+ node zig/test.js
compile_program: start
compile_program: options=["-c","hello.c"]
compile_program: code=
int main(int argc, char *argv[]) {
printf("Hello, World!!\n");
return 0;
}
compile_program: options[0]=-c
compile_program: options[1]=hello.c
open: path=hello.c, oflag=0, return fd=3
sem_init: sem=tcc-wasm.sem_t@10cfe8, pshared=0, value=1
sem_wait: sem=tcc-wasm.sem_t@10cfe8
TODO: setjmp
TODO: sscanf: str=0.9.27, format=%d.%d.%d
format_string1: size=128, format=#define __TINYC__ %d
, a=1991381505
vsnprintf: return str=#define __TINYC__ 1991381505
format_string2: size=99, format=#define %s%s
, a0=__riscv, a1= 1
vsnprintf: return str=#define __riscv 1
format_string2: size=81, format=#define %s%s
, a0=__riscv_xlen 64, a1=
vsnprintf: return str=#define __riscv_xlen 64
format_string2: size=185, format=#define %s%s
, a0=__riscv_flen 64, a1=
vsnprintf: return str=#define __riscv_flen 64
format_string2: size=161, format=#define %s%s
, a0=__riscv_div, a1= 1
vsnprintf: return str=#define __riscv_div 1
format_string2: size=139, format=#define %s%s
, a0=__riscv_mul, a1= 1
vsnprintf: return str=#define __riscv_mul 1
format_string2: size=117, format=#define %s%s
, a0=__riscv_fdiv, a1= 1
vsnprintf: return str=#define __riscv_fdiv 1
format_string2: size=94, format=#define %s%s
, a0=__riscv_fsqrt, a1= 1
vsnprintf: return str=#define __riscv_fsqrt 1
format_string2: size=326, format=#define %s%s
, a0=__riscv_float_abi_double, a1= 1
vsnprintf: return str=#define __riscv_float_abi_double 1
format_string2: size=291, format=#define %s%s
, a0=__linux__, a1= 1
vsnprintf: return str=#define __linux__ 1
format_string2: size=271, format=#define %s%s
, a0=__linux, a1= 1
vsnprintf: return str=#define __linux 1
format_string2: size=253, format=#define %s%s
, a0=__unix__, a1= 1
vsnprintf: return str=#define __unix__ 1
format_string2: size=234, format=#define %s%s
, a0=__unix, a1= 1
vsnprintf: return str=#define __unix 1
format_string2: size=217, format=#define %s%s
, a0=__CHAR_UNSIGNED__, a1= 1
vsnprintf: return str=#define __CHAR_UNSIGNED__ 1
format_string1: size=189, format=#define __SIZEOF_POINTER__ %d
, a=8
vsnprintf: return str=#define __SIZEOF_POINTER__ 8
format_string1: size=160, format=#define __SIZEOF_LONG__ %d
, a=8
vsnprintf: return str=#define __SIZEOF_LONG__ 8
format_string2: size=134, format=#define %s%s
, a0=__STDC__, a1= 1
vsnprintf: return str=#define __STDC__ 1
format_string1: size=115, format=#define __STDC_VERSION__ %dL
, a=199901
vsnprintf: return str=#define __STDC_VERSION__ 199901L
format_string1: size=356, format=#define __BASE_FILE__ "%s"
, a=hello.c
vsnprintf: return str=#define __BASE_FILE__ "hello.c"
read: fd=3, nbyte=8192
read: return buf=
int main(int argc, char *argv[]) {
printf("Hello, World!!\n");
return 0;
}
format_string2: size=128, format=%s:%d: , a0=hello.c, a1=3
vsnprintf: return str=hello.c:3:
format_string0: size=117, format=warning:
vsnprintf: return str=warning:
format_string1: size=108, format=implicit declaration of function '%s', a=printf
vsnprintf: return str=implicit declaration of function 'printf'
format_string1: size=0, format=%s
, a=hello.c:3: warning: implicit declaration of function 'printf'
fprintf: stream=tcc-wasm.FILE@2
hello.c:3: warning: implicit declaration of function 'printf'
format_string1: size=0, format=L.%u, a=0
sprintf: return str=L.0
format_string1: size=256, format=.rela%s, a=.text
snprintf: return str=.rela.text
read: fd=3, nbyte=8192
read: return buf=
close: fd=3
sem_post: sem=tcc-wasm.sem_t@10cfe8
format_string1: size=1024, format=%s, a=hello.c
snprintf: return str=hello.c
unlink: path=hello.o
open: path=hello.o, oflag=577, return fd=4
fdopen: fd=4, mode=wb, return FILE=5
fwrite: size=1, nmemb=64, stream=tcc-wasm.FILE@5
0000: 7F 45 4C 46 02 01 01 00 00 00 00 00 00 00 00 00 .ELF............
0016: 01 00 F3 00 01 00 00 00 00 00 00 00 00 00 00 00 ................
0032: 00 00 00 00 00 00 00 00 D0 01 00 00 00 00 00 00 ................
0048: 04 00 00 00 40 00 00 00 00 00 40 00 09 00 08 00 ....@.....@.....
fwrite: size=1, nmemb=64, stream=tcc-wasm.FILE@5
0000: 13 01 01 FE 23 3C 11 00 23 38 81 00 13 04 01 02 ....#<..#8......
0016: 13 00 00 00 23 34 A4 FE 23 30 B4 FE 17 05 00 00 ....#4..#0......
0032: 13 05 05 00 97 00 00 00 E7 80 00 00 1B 05 00 00 ................
0048: 83 30 81 01 03 34 01 01 13 01 01 02 67 80 00 00 .0...4......g...
fwrite: size=1, nmemb=16, stream=tcc-wasm.FILE@5
0000: 48 65 6C 6C 6F 2C 20 57 6F 72 6C 64 21 21 0A 00 Hello, World!!..
fwrite: size=1, nmemb=144, stream=tcc-wasm.FILE@5
0000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0016: 00 00 00 00 00 00 00 00 01 00 00 00 04 00 F1 FF ................
0032: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0048: 0E 00 00 00 01 00 03 00 00 00 00 00 00 00 00 00 ................
0064: 10 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 ................
0080: 1C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0096: 09 00 00 00 12 00 01 00 00 00 00 00 00 00 00 00 ................
0112: 40 00 00 00 00 00 00 00 12 00 00 00 12 00 00 00 @...............
0128: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
fwrite: size=1, nmemb=25, stream=tcc-wasm.FILE@5
0000: 00 68 65 6C 6C 6F 2E 63 00 6D 61 69 6E 00 4C 2E .hello.c.main.L.
0016: 30 00 70 72 69 6E 74 66 00 0.printf.
fputc: c=0x00, stream=tcc-wasm.FILE@5
fputc: c=0x00, stream=tcc-wasm.FILE@5
fputc: c=0x00, stream=tcc-wasm.FILE@5
fputc: c=0x00, stream=tcc-wasm.FILE@5
fputc: c=0x00, stream=tcc-wasm.FILE@5
fputc: c=0x00, stream=tcc-wasm.FILE@5
fputc: c=0x00, stream=tcc-wasm.FILE@5
fwrite: size=1, nmemb=72, stream=tcc-wasm.FILE@5
0000: 1C 00 00 00 00 00 00 00 17 00 00 00 02 00 00 00 ................
0016: 00 00 00 00 00 00 00 00 20 00 00 00 00 00 00 00 ........ .......
0032: 18 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 ................
0048: 24 00 00 00 00 00 00 00 13 00 00 00 05 00 00 00 $...............
0064: 00 00 00 00 00 00 00 00 ........
fputc: c=0x00, stream=tcc-wasm.FILE@5
fputc: c=0x00, stream=tcc-wasm.FILE@5
fputc: c=0x00, stream=tcc-wasm.FILE@5
fputc: c=0x00, stream=tcc-wasm.FILE@5
fputc: c=0x00, stream=tcc-wasm.FILE@5
fputc: c=0x00, stream=tcc-wasm.FILE@5
fputc: c=0x00, stream=tcc-wasm.FILE@5
fputc: c=0x00, stream=tcc-wasm.FILE@5
fwrite: size=1, nmemb=64, stream=tcc-wasm.FILE@5
0000: 00 2E 74 65 78 74 00 2E 64 61 74 61 00 2E 64 61 ..text..data..da
0016: 74 61 2E 72 6F 00 2E 62 73 73 00 2E 73 79 6D 74 ta.ro..bss..symt
0032: 61 62 00 2E 73 74 72 74 61 62 00 2E 72 65 6C 61 ab..strtab..rela
0048: 2E 74 65 78 74 00 2E 73 68 73 74 72 74 61 62 00 .text..shstrtab.
fwrite: size=1, nmemb=64, stream=tcc-wasm.FILE@5
0000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0016: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0032: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0048: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
fwrite: size=1, nmemb=64, stream=tcc-wasm.FILE@5
0000: 01 00 00 00 01 00 00 00 06 00 00 00 00 00 00 00 ................
0016: 00 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 ........@.......
0032: 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 @...............
0048: 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
fwrite: size=1, nmemb=64, stream=tcc-wasm.FILE@5
0000: 07 00 00 00 01 00 00 00 03 00 00 00 00 00 00 00 ................
0016: 00 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 ................
0032: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0048: 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
fwrite: size=1, nmemb=64, stream=tcc-wasm.FILE@5
0000: 0D 00 00 00 01 00 00 00 03 00 00 00 00 00 00 00 ................
0016: 00 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 ................
0032: 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0048: 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
fwrite: size=1, nmemb=64, stream=tcc-wasm.FILE@5
0000: 16 00 00 00 08 00 00 00 03 00 00 00 00 00 00 00 ................
0016: 00 00 00 00 00 00 00 00 90 00 00 00 00 00 00 00 ................
0032: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0048: 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
fwrite: size=1, nmemb=64, stream=tcc-wasm.FILE@5
0000: 1B 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 ................
0016: 00 00 00 00 00 00 00 00 90 00 00 00 00 00 00 00 ................
0032: 90 00 00 00 00 00 00 00 06 00 00 00 04 00 00 00 ................
0048: 08 00 00 00 00 00 00 00 18 00 00 00 00 00 00 00 ................
fwrite: size=1, nmemb=64, stream=tcc-wasm.FILE@5
0000: 23 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 #...............
0016: 00 00 00 00 00 00 00 00 20 01 00 00 00 00 00 00 ........ .......
0032: 19 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0048: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
fwrite: size=1, nmemb=64, stream=tcc-wasm.FILE@5
0000: 2B 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 +...............
0016: 00 00 00 00 00 00 00 00 40 01 00 00 00 00 00 00 ........@.......
0032: 48 00 00 00 00 00 00 00 05 00 00 00 01 00 00 00 H...............
0048: 08 00 00 00 00 00 00 00 18 00 00 00 00 00 00 00 ................
fwrite: size=1, nmemb=64, stream=tcc-wasm.FILE@5
0000: 36 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 6...............
0016: 00 00 00 00 00 00 00 00 90 01 00 00 00 00 00 00 ................
0032: 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 @...............
0048: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
close: stream=tcc-wasm.FILE@5
a.out: 1040 bytes
0000: 7F 45 4C 46 02 01 01 00 00 00 00 00 00 00 00 00 .ELF............
0016: 01 00 F3 00 01 00 00 00 00 00 00 00 00 00 00 00 ................
0032: 00 00 00 00 00 00 00 00 D0 01 00 00 00 00 00 00 ................
0048: 04 00 00 00 40 00 00 00 00 00 40 00 09 00 08 00 ....@.....@.....
0064: 13 01 01 FE 23 3C 11 00 23 38 81 00 13 04 01 02 ....#<..#8......
0080: 13 00 00 00 23 34 A4 FE 23 30 B4 FE 17 05 00 00 ....#4..#0......
0096: 13 05 05 00 97 00 00 00 E7 80 00 00 1B 05 00 00 ................
0112: 83 30 81 01 03 34 01 01 13 01 01 02 67 80 00 00 .0...4......g...
0128: 48 65 6C 6C 6F 2C 20 57 6F 72 6C 64 21 21 0A 00 Hello, World!!..
0144: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0160: 00 00 00 00 00 00 00 00 01 00 00 00 04 00 F1 FF ................
0176: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0192: 0E 00 00 00 01 00 03 00 00 00 00 00 00 00 00 00 ................
0208: 10 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 ................
0224: 1C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0240: 09 00 00 00 12 00 01 00 00 00 00 00 00 00 00 00 ................
0256: 40 00 00 00 00 00 00 00 12 00 00 00 12 00 00 00 @...............
0272: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0288: 00 68 65 6C 6C 6F 2E 63 00 6D 61 69 6E 00 4C 2E .hello.c.main.L.
0304: 30 00 70 72 69 6E 74 66 00 00 00 00 00 00 00 00 0.printf........
0320: 1C 00 00 00 00 00 00 00 17 00 00 00 02 00 00 00 ................
0336: 00 00 00 00 00 00 00 00 20 00 00 00 00 00 00 00 ........ .......
0352: 18 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 ................
0368: 24 00 00 00 00 00 00 00 13 00 00 00 05 00 00 00 $...............
0384: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0400: 00 2E 74 65 78 74 00 2E 64 61 74 61 00 2E 64 61 ..text..data..da
0416: 74 61 2E 72 6F 00 2E 62 73 73 00 2E 73 79 6D 74 ta.ro..bss..symt
0432: 61 62 00 2E 73 74 72 74 61 62 00 2E 72 65 6C 61 ab..strtab..rela
0448: 2E 74 65 78 74 00 2E 73 68 73 74 72 74 61 62 00 .text..shstrtab.
0464: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0480: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0496: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0512: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0528: 01 00 00 00 01 00 00 00 06 00 00 00 00 00 00 00 ................
0544: 00 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 ........@.......
0560: 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 @...............
0576: 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0592: 07 00 00 00 01 00 00 00 03 00 00 00 00 00 00 00 ................
0608: 00 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 ................
0624: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0640: 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0656: 0D 00 00 00 01 00 00 00 03 00 00 00 00 00 00 00 ................
0672: 00 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 ................
0688: 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0704: 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0720: 16 00 00 00 08 00 00 00 03 00 00 00 00 00 00 00 ................
0736: 00 00 00 00 00 00 00 00 90 00 00 00 00 00 00 00 ................
0752: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0768: 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0784: 1B 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 ................
0800: 00 00 00 00 00 00 00 00 90 00 00 00 00 00 00 00 ................
0816: 90 00 00 00 00 00 00 00 06 00 00 00 04 00 00 00 ................
0832: 08 00 00 00 00 00 00 00 18 00 00 00 00 00 00 00 ................
0848: 23 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 #...............
0864: 00 00 00 00 00 00 00 00 20 01 00 00 00 00 00 00 ........ .......
0880: 19 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0896: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0912: 2B 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 +...............
0928: 00 00 00 00 00 00 00 00 40 01 00 00 00 00 00 00 ........@.......
0944: 48 00 00 00 00 00 00 00 05 00 00 00 01 00 00 00 H...............
0960: 08 00 00 00 00 00 00 00 18 00 00 00 00 00 00 00 ................
0976: 36 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 6...............
0992: 00 00 00 00 00 00 00 00 90 01 00 00 00 00 00 00 ................
1008: 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 @...............
1024: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
ret=18219008
+ node zig/test.js
+ grep TODO
TODO: setjmp
TODO: sscanf: str=0.9.27, format=%d.%d.%d
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment