# plan9: fix \.z symbol in debuginfo · gitcafe/zig

[View on GitCafe](https://git.cafe/gitcafe/zig/commit/b47530b9fef28d32747b0f6978ad4b71e5fc5df9)

Repository: [gitcafe/zig](https://git.cafe/gitcafe/zig)

Visibility: public

Requested revision: b47530b9fef28d32747b0f6978ad4b71e5fc5df9

Requested commit: b47530b9fef28d32747b0f6978ad4b71e5fc5df9

Commit: b47530b9fef28d32747b0f6978ad4b71e5fc5df9

Tree: 0a38a393d58ec9bbce5bb0dfa1be1f399efeaf91

Author: Jacob G-W

Committer: Jakub Konka

## Message

````
plan9: fix .z symbol in debuginfo

This allows the `acid` debugger on
plan9 to be used to debug a zig source
file without patching `acid`!

The patch adds a second `z` symbol. This z
symbol has a value of 0, which means that it
pops the history stack. We put a very large
number for the value of the second symbol because
it has to be at least as large as the linecount of
the file. The debuginfo format is meant to be used
with c files, where the stack would look something
like this:
```
->  Line: 0x1 (1)  Name: 0x1/0x2/0x3/0xe/0x13/0x1b (/sys/src/libc/port/malloc.c)
->  Line: 0x2 (2)  Name: 0x1/0x6/0x7/0x8 (/amd64/include/u.h)
->  Line: 0x4f (79)  Name:  ()
->  Line: 0x50 (80)  Name: 0x1/0x2/0x7/0x9 (/sys/include/libc.h)
->  Line: 0x358 (856)  Name:  ()
->  Line: 0x359 (857)  Name: 0x1/0x2/0x7/0x1c (/sys/include/pool.h)
->  Line: 0x392 (914)  Name:  ()
->  Line: 0x393 (915)  Name: 0x1/0x2/0x7/0x1d (/sys/include/tos.h)
->  Line: 0x3ab (939)  Name:  ()
->  Line: 0x4eb (1259)  Name:  ()
```
however in zig, we do not use includes and .h files,
so we only need the first and last items in the stack:
the source file that the symbols belong to, and the pop
symbol with a null name and a value of the total linecount of the
preprocessed source. Since there is no preprocessing in zig, we
just make the linecount very large. There do not appear to be
any downsides to this approach. If this causes a bug in the future,
a simple fix would be to make the pop symbol just have the value
of how many newlines are in the source file.

````

## Parents

- [1d55e4cae10e95841a5fd457aed6c84595994fe1](https://git.cafe/gitcafe/zig/commit/1d55e4cae10e95841a5fd457aed6c84595994fe1?format=markdown)

[Source at this commit](https://git.cafe/gitcafe/zig/tree/b47530b9fef28d32747b0f6978ad4b71e5fc5df9?format=markdown)
