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 Debugger tool window, select the desired pointer variable. For a non-pointer object in memory, you can set a watch for the variable's address (like
&var) and then invoke Memory View for it.
Press Ctrl+Enter or choose Show in Memory View from the variable's context menu:
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:
Open Memory View in the editor
Use the Move Memory View to Editor button on the Variables (or Watches) tab to open 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: