From a180d8b7b238be0efa61b4631af5e40272e1bf76 Mon Sep 17 00:00:00 2001 From: Christoph Urlacher Date: Wed, 25 Feb 2026 13:23:01 +0100 Subject: [PATCH] some valgrind bullshit --- .gitignore | 1 + CMakeLists.txt | 2 +- flake.nix | 1 + src/state.cpp | 4 +++ valgrind.supp | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 valgrind.supp diff --git a/.gitignore b/.gitignore index 6ace9b9..dbb1bac 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ cmake-build-release /platform /result /.gdb_history +/valgrind.log diff --git a/CMakeLists.txt b/CMakeLists.txt index 60df08b..589267a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,7 +25,7 @@ if(USE_TRACY) endif() set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wfloat-equal -Wundef -Wshadow -Wpointer-arith -Wcast-align -Wno-unused-parameter -Wunreachable-code") -set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Og -ggdb -fsanitize=undefined") # -fsanitize=address already fails on InitWindow() +set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O3 -ggdb -fsanitize=undefined") # -fsanitize=address already fails on InitWindow() set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3 -march=native") message("-- CMAKE_C_FLAGS: ${CMAKE_C_FLAGS}") diff --git a/flake.nix b/flake.nix index ddcf235..e6101d7 100644 --- a/flake.nix +++ b/flake.nix @@ -287,6 +287,7 @@ rec { abbr -a release "${buildRelease} && ./cmake-build-release/masssprings" abbr -a rungdb "${buildDebug} && gdb --tui ./cmake-build-debug/masssprings" abbr -a runtracy "tracy -a 127.0.0.1 &; ${buildRelease} && sudo -E ./cmake-build-release/masssprings" + abbr -a runvalgrind "${buildDebug} && valgrind --leak-check=full --show-reachable=no --show-leak-kinds=definite,indirect,possible --track-origins=no --suppressions=valgrind.supp --log-file=valgrind.log ./cmake-build-debug/masssprings && cat valgrind.log" ''; in builtins.concatStringsSep "\n" [ diff --git a/src/state.cpp b/src/state.cpp index 02b502e..1d6f115 100644 --- a/src/state.cpp +++ b/src/state.cpp @@ -86,7 +86,9 @@ auto StateManager::NextPath() -> void { } auto StateManager::FillGraph() -> void { +#ifdef TRACY ZoneScoped; +#endif ClearGraph(); @@ -178,7 +180,9 @@ auto StateManager::FindWinningStates() -> void { } auto StateManager::FindTargetDistances() -> void { +#ifdef TRACY ZoneScoped; +#endif if (springs.size() == 0 || winning_states.size() == 0) { return; diff --git a/valgrind.supp b/valgrind.supp new file mode 100644 index 0000000..2f51be6 --- /dev/null +++ b/valgrind.supp @@ -0,0 +1,66 @@ +{ + glib_malloc + Memcheck:Leak + ... + obj:*/libglib-2.0.so* +} +{ + gtk_leaks + Memcheck:Leak + ... + obj:*/libgtk-3.so* +} +{ + mesa_leaks + Memcheck:Leak + ... + obj:*/libGLX* +} +{ + glfw_leaks + Memcheck:Leak + ... + obj:*/libglfw.so* +} +{ + wayland_leaks + Memcheck:Leak + ... + obj:*/libwayland*.so* +} +{ + dbus_leaks + Memcheck:Leak + ... + obj:*/libdbus*.so* +} +{ + egl_leaks + Memcheck:Leak + ... + obj:*/libEGL*.so* +} +{ + x11_leaks + Memcheck:Leak + ... + obj:*/libX11* +} +{ + fontconfig_leaks + Memcheck:Leak + ... + obj:*/libfontconfig.so* +} +{ + pango_leaks + Memcheck:Leak + ... + obj:*/libpango*.so* +} +{ + nvidia_leaks + Memcheck:Leak + ... + obj:*/libnvidia*.so* +}