In some cases, for example, when debugging data processing problems, you may need to view raw memory of the running process. For this, CLion provides Memory View: you can jump from a pointer in the Variables tab to the memory region that includes the required address and examine the changes along with stepping through the program.
Show Memory View
In the Variables tab of the Debug tool window, select the desired pointervariable.
Press Control+Enter or choose Show in Memory View from the variable's context menu:
This option is available for non-pointer variables as well. The variable's address will be taken automatically.
The Memory View window initially shows a 256-byte region that starts from the chosen address, with higher memory addresses at the bottom of the window. When you then invoke Memory View for other pointers, they are highlighted in the same window, and the region is extended to show more addresses if necessary.
Use the context menu of the left column to hide/show or copy the addresses:
The right-hand column displays the ASCII character equivalents of the memory values.
When you step through the code, CLion highlights the changes that happen in the currently shown memory region:
Configure the number of bytes per line
To change the number of columns (number of bytes per line) shown in memory view, click and select the number:
Open memory view in the editor
Use the button on the Variables (or Watches) tab to open the memory view in the editor.
This way, you can open two independent memory windows, in the Debug tool window and in the editor:
Go to address
Use the Go to field of the Memory View window to jump to a particular address. You can enter the address directly as a hex number, specify a pointer variable or an expression evaluating to a pointer, or use the address of operator
&to get the address of any variable.
Code completion in this field helps in choosing from the known symbols:
Memory View supports on-the-fly memory editing.
Place the caret in the region you want to modify and start typing. You will see the new value displayed right away: