Entries are ordered from most to least recent, in an "endless file".
Each entry is introduced by the output of: date +'= %F, %A ='
= 2022-11-14, Monday =
You can request the collected latency statistics from a running ping(1)
process by sending it a SIGQUIT signal. (linux)
= 2022-11-13, Sunday =
Useful strace(1) options (linux)
The -e flag can be used for a variety of things:
- To filter the systemcall. It supports classe of syscalls, e.g.
`strace -e %file x` is equivalent to
`strace -e trace=open,stat,chmod,unlink,... x`.
Hidden jems in the available classes.
- To dump the data of the read/write operations.
- To decode information about the file descriptors (e.g path of the files)
(see also -y / -yy / -Y)
- To inject syscall behaviours.
The -c flag shows a table of statistics on invoked syscalls.
The -z/-Z flags filter successful and faulty syscalls respectively.
The -r/-T flags measure times between and within syscalls respectively.
Possibly useful for a rough performance assessment.
= 2022-11-08, Tuesday =
A few interesting flags for gcc, mentioned by a work
colleague during a discussion:
-fwhole-program:
Assume that the current compilation unit represents the
whole program being compiled. [...]
In short, it will turn every function to static (except for
main), so they can be optimized aggressively.
= 2022-11-08, Tuesday =
Hidden perls in the linker.
--wrap=symbol can be used to easily set mock any function
external to the module. This is very useful for unit tests,
for example.
= 2022-10-23, Sunday =
The ptrace(2) call (linux), of which I heard of, but never studied before,
allows to trace a child process in the same way as a debugger would.
It can be used to do interesting things, such as dumping the
text of a binary one instruction at the time.
= 2022-01-26, Wednesday =
htobe32(3) - and friends. I only knew htonl(3) - and friends.
I could not find a trivial extractor for Flattened Image Tree. I
manually extracted the Flattened Device Tree into a C array, by
means of some shell-fu. It turns out that the magic number of the
FDT is 0xd00dfeed (big endian).
See also (linux): byteorder(3) endian(3)
See also (freebsd): byteorder(3) byteorder(9)
= 2022-01-26, Wednesday =
Flattened Image Tree (FIT) is a file format based on device tree.
It allows to pack together multi-component images (such as kernel,
bootloaders and device trees) into a single file.
= 2022-01-26, Wednesday =
In Linux, it is possible to interpret a device tree by using the
reference material under Documentation/devicetree/bindings.