CppMem: An Overview
CppMem is an interactive tool for exploring the behavior of small code snippets using the C++ memory model. It has to be in the toolbox of each programmer who seriously deals with the memory model.
The online version of CppMem - you can also install it on your PC - provides very valuable services in a twofold way:
- CppMem verifies the behavior of small code snippets. Based on the C++ memory model, the tool considers all possible interleavings of threads, visualizes each of them in a graph, and annotates these graphs with additional details.
- The very accurate analysis of CppMem gives you deep insight into the C++ memory model. In short, CppMem is a tool that helps you to get a better understanding of the memory model.
Of course, it’s often the nature of powerful tools that you first have to overcome a few hurdles. The nature of things is that CppMem is highly configurable, and it gives you a very detailed analysis related to this extremely challenging topic. Therefore, my plan is to present the components of the tool.
My simplified overview of CppMem is based on the default configuration. This overview will only provide you with the base for further experiments and should help you to understand my process of ongoing optimization.