User Tools

Site Tools


dev:debugging

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
dev:debugging [2015/10/02 13:57] oschuettdev:debugging [2020/08/21 10:15] (current) – external edit 127.0.0.1
Line 27: Line 27:
  
 ===== valgrind ===== ===== valgrind =====
 +==== undefined variables ====
  
 [[ http://valgrind.org/ | valgrind ]] is very useful to find additional bugs, most commonly related to undefined variables. Unfortunately, the slowdown caused by valgrind makes this practical only for test cases that run within seconds/minutes. The full regtester is run from time to time under valgrind. [[ http://valgrind.org/ | valgrind ]] is very useful to find additional bugs, most commonly related to undefined variables. Unfortunately, the slowdown caused by valgrind makes this practical only for test cases that run within seconds/minutes. The full regtester is run from time to time under valgrind.
Line 52: Line 53:
 Run valgrind with  Run valgrind with 
 <code> <code>
-valgrind --max-stackframe=2100192  --leak-check=full --track-origins=yes+valgrind --max-stackframe=2100192 --leak-check=full --track-origins=yes
 </code> </code>
 to get the origin of undefined variables in addition to a leak check report. to get the origin of undefined variables in addition to a leak check report.
 +
 +
 +==== understanding memory usage ====
 +
 +valgrind also comes with the 'massif' tool, which can provide detailed information about memory usage. How much is the peak allocated memory, and where do most of these allocations come from? 
 +
 +Rather easy with
 +
 +<code>
 +valgrind --tool=massif ../../../exe/local_valgrind/cp2k.sopt test.inp 
 +ms_print massif.out.XYZ
 +</code>
 +
 +The valgrind homepage has [[http://valgrind.org/docs/manual/ms-manual.html | detailed description of massif]].
 +
 +==== valgrind in parallel ====
 +
 +valgrind can also be used for debugging parallel code, eg.:
 +
 +<code>
 +mpirun -np 2 -x OMP_NUM_THREADS=2  valgrind --max-stackframe=2100192 --leak-check=full --track-origins=yes cp2k.psmp cp2k.inp
 +</code>
  
 ===== Memory leak checking ===== ===== Memory leak checking =====
dev/debugging.1443794244.txt.gz · Last modified: 2020/08/21 10:14 (external edit)