Repository:
Make sure you have installed the following:
Allow direnv
to load the environment by executing direnv allow
.
Then, to build in the debug
mode, run
meson setup debug
cd debug
ninja && ./kirk
To build in the release
mode, run nix build
(the result is the target of the result
symbolic link). To run the build immediately, run nix run
instead.
You might also want to create a symbolic link of the compile_commands.json
file from the debug
mode build directory in the root of the repository, so that the tooling can see it:
ln -s debug/compile_commands.json
To lint the code, run ninja lint
.
To record the program execution, run ninja && rr record ./kirk
. To replay it, run rr replay
.
To decode TLS messages, create a key log file via ninja && SSLKEYLOGFILE=ssl_keylog ./kirk
, use it with Wireshark afterward.
To check for memory leaks, run:
ninja && valgrind \
--leak-check=full \
--show-leak-kinds=definite \
--suppressions=$GLIB_SUPP_FILE \
--suppressions=$GTK_SUPP_FILE \
--suppressions=../kirk.supp \
./kirk