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 && ./kirkTo 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.jsonTo 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