Move Go to a subdir

This commit is contained in:
Přemysl Eric Janouch 2017-07-03 07:47:13 +02:00
parent d1d43387e5
commit 886f8179ab
Signed by: p
GPG Key ID: B715679E3A361BE6
4 changed files with 9 additions and 8 deletions

View File

@ -35,25 +35,26 @@ When no input file is specified, standard input is used. Similarly, the default
output filename is `a.out`. After the compilation, the resulting file can be output filename is `a.out`. After the compilation, the resulting file can be
run on the target platform. run on the target platform.
gdb DWARF
--- -----
You may have noticed the `gdb-experiment.go` file. It is a non-optimizing You may have noticed the 'dwarf' directory. `simple.go` is a non-optimizing
version of the compiler targeting Linux only that adds DWARF debugging version of the compiler targeting Linux only that adds DWARF debugging
information mapping code locations onto lines in the `ir-dump.txt` byproduct information mapping code locations onto lines in the `ir-dump.txt` byproduct
output file. It's been rewritten in Go since managing all those binary buffers output file. It's been rewritten in Go since managing all those binary buffers
required to build the symbol table proved to be too painful in C. required to build the symbol table proved to be too painful in C.
$ go run gdb-experiment.go [INPUT-FILE] [OUTPUT-FILE] $ go run dwarf/simple.go [INPUT-FILE] [OUTPUT-FILE]
Use `break *0x4000b7` to get a breakpoint at the first Brainfuck instruction. Type `break *0x4000b7` into gdb to get a breakpoint at the first Brainfuck
instruction.
image::gdb-experiment.png[align="center"] image::gdb-experiment.png[align="center"]
There is also `gdb-object-file.go` that generates an object file that can be There is also `object-file.go` that generates an object file that can be
statically linked with `ld`, and `gdb-object-file-libc.go` generates an statically linked with `ld`, and `object-file-libc.go` that generates an
OS-independent binary that can be linked against the libc with the C compiler: OS-independent binary that can be linked against the libc with the C compiler:
$ go run gdb-object-file-libc.go program.bf program.o $ go run dwarf/object-file-libc.go program.bf program.o
$ cc program.o -o program $ cc program.o -o program
Contributing and Support Contributing and Support