3 ms·
At Pixie, we developed a feature to dynamic trace program execution context, for example: arguments and return values of a function [1]. That was built on top
by justicezyx 6y ago
At Pixie, we developed a feature to dynamic trace program execution context, for example: arguments and return values of a function [1].
That was built on top of eBPF [2], and in the process we have studied how debugger works, particularly how to pull rich context information about the program executable's file structure (symbols, elf format) and dwarf information [3]. The other significant piece is golang's own implementation details, such as how interface is implemented.
It's a very refreshing learning experience. The end result is that we gained a deeper understanding of how program presents itself to operating system and chips.
[1] https://docs.pixielabs.ai/using-pixie/code-tracing/ https://docs.pixielabs.ai/using-pixie/code-tracing/
[2] https://www.iovisor.org/technology/ebpf https://www.iovisor.org/technology/ebpf
[3] https://en.wikipedia.org/wiki/DWARF https://en.wikipedia.org/wiki/DWARF