sanitizers
spdlog
sanitizers | spdlog | |
---|---|---|
54 | 44 | |
11,472 | 24,252 | |
0.8% | - | |
7.8 | 8.4 | |
2 months ago | 6 days ago | |
C | C++ | |
GNU General Public License v3.0 or later | MIT |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
sanitizers
-
Logging all C++ destructors, poor mans run-time tracing
ASAN also checks for memory leaks like valgrind, the main difference with the tools is whether you can recompile all of libraries to get the compiler support for detection or whether binary instrumentation is better (https://github.com/google/sanitizers/wiki/AddressSanitizerLe...)
-
Twenty Years of Valgrind
I like Valgrind, but day-to-day, I find myself typically reaching for Sanitizers[1] instead (ASan, et. al.), especially since they're built-in to many compilers these days, and are a bit faster IME.
Are there any use cases that people here have experienced where Valgrind is their first choice?
[1] https://github.com/google/sanitizers
-
Code Smell 260 - Crowdstrike NULL
Use address sanitizers
- The sad state of property-based testing libraries
-
Trip C++Now 2024 – think-cell
While shipping debug symbols is something I recommend and has no side-effects aside from mere file-size (debug symbols are only loaded when used).
[1] https://github.com/google/sanitizers/issues/857
-
Good resources for learning C in depth?
AddressSanitizer is really useful, it's similar to Valgrind but has much lower overhead.
-
Memory Allocators
And if you're up for it, I'd further recommend adding some ways to deal with buffer overflows in debug builds. The way I deal with this is by using Address-Sanitizer's manual poisoning api. Bonus point if you leave additional poisoned space between allocations so off by one errors are likely to end up in a poisoned region instead of nearby allocation.
- Exception thrown: write access violation
-
2023 Stack Overflow Survey: Rust is the most admired programming language, making it the most loved language for 8 years in a row
It also doesn't hurt that Miri can find many kinds of unsafe violations even in unsafe blocks. Zig may get something like this one day, but even if it does, checking things at runtime is not a substitute for compile time -- the C++ Sanitizers haven't exactly solved the safety story for C++ even over a decade later.
-
What's the best thing you've found in code? :
This is where stuff like ASan is really useful.
spdlog
-
Show HN: Logfmtxx – Header only C++23 structured logging library using logfmt
Why a new lib instead of using or contributing to an existing one as spdlog?
https://github.com/gabime/spdlog
-
C++ Game Utility Libraries: for Game Dev Rustaceans
GitHub repo: gabime/spdlog
-
Easy logging A logging system for c++20
SpdLog https://github.com/gabime/spdlog
- Blackbox library for embedded systems
- cpp macros
-
Compiled logging library suggestion(s)?
The usual recommendation when logging libraries are brought up is spdlog, which is however header-only. It's available on Conan-center.
-
What a good debugger can do
* Aha! In digging up the docs for NDC, I found this[1], which does mention a book for your reading list: "Patterns for Logging Diagnostic Messages" part of the book "Pattern Languages of Program Design 3" edited by Martin et al.
[1] https://github.com/gabime/spdlog
- Does spdlog::get()->critical throw?
-
CMake question
FetchContent_Declare( spdlog GIT_REPOSITORY https://github.com/gabime/spdlog GIT_TAG origin/v1.x ) FetchContent_MakeAvailable(spdlog)
-
I want to slightly change the behavior of the std::cout
Typically, you'd use a logging library to handle stuff like this. I personally like spdlog. You use different logger functions (info, warn, error) and depending on what level you have set for the logger (or globally) some of the functions become no-ops. E.g. When not running in verbose mode all spdlog::info() do nothing.
What are some alternatives?
miri - An interpreter for Rust's mid-level intermediate representation
glog - C++ implementation of the Google logging module
plotters - A rust drawing library for high quality data plotting for both WASM and native, statically and realtimely 🦀 📈🚀
Boost.Log - Boost Logging library
xeus-cling - Jupyter kernel for the C++ programming language
easyloggingpp - C++ logging library. It is powerful, supports asynchronous low latency, extendable, light-weight, fast performing, thread and type safe and consists of many built-in features. It provides ability to write logs in your own customized format. It also provide support for logging your classes, third-party libraries, STL and third-party containers etc.
util-linux
G3log - G3log is an asynchronous, "crash safe", logger that is easy to use with default logging sinks or you can add your own. G3log is made with plain C++14 (C++11 support up to release 1.3.2) with no external libraries (except gtest used for unit tests). G3log is made to be cross-platform, currently running on OSX, Windows and several Linux distros. See Readme below for details of usage.
gui_starter_template - A template CMake project to get you started with C++ and tooling
plog - Portable, simple and extensible C++ logging library
Catch - A modern, C++-native, test framework for unit-tests, TDD and BDD - using C++14, C++17 and later (C++11 support is in v2.x branch, and C++03 on the Catch1.x branch)
log4cplus - log4cplus is a simple to use C++ logging API providing thread-safe, flexible, and arbitrarily granular control over log management and configuration. It is modelled after the Java log4j API.