Browse Source

Move Go to a subdir

master
Přemysl Janouch 2 years ago
parent
commit
886f8179ab
Signed by: Přemysl Janouch <p.janouch@gmail.com> GPG Key ID: B715679E3A361BE6
4 changed files with 9 additions and 8 deletions
  1. 9
    8
      README.adoc
  2. 0
    0
      dwarf/object-file-libc.go
  3. 0
    0
      dwarf/object-file.go
  4. 0
    0
      dwarf/simple.go

+ 9
- 8
README.adoc 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
run on the target platform.

gdb
---
You may have noticed the `gdb-experiment.go` file. It is a non-optimizing
DWARF
-----
You may have noticed the 'dwarf' directory. `simple.go` is a non-optimizing
version of the compiler targeting Linux only that adds DWARF debugging
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
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"]

There is also `gdb-object-file.go` that generates an object file that can be
statically linked with `ld`, and `gdb-object-file-libc.go` generates an
There is also `object-file.go` that generates an object file that can be
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:

$ 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

Contributing and Support

gdb-object-file-libc.go → dwarf/object-file-libc.go View File


gdb-object-file.go → dwarf/object-file.go View File


gdb-experiment.go → dwarf/simple.go View File


Loading…
Cancel
Save