Dr. Memory on macOS
Inštalačný súbor si stiahnite https://github.com/DynamoRIO/drmemory/wiki/Downloads. (Priamy link)
Ovorte terminál. Ten nájdete v časti Launchpad > Others alebo pomocou rýchleho vyhladávania: stlačte ⌘+Space a napíšte Terminal.
Presuňte sa do priečinku Downloads, prípadne do priečinku, v ktorom sa nachádza stiahnutý inštalačný súbor (Pomocou príkazov cd {directory}). Preveďte nasledujúcu postupnosť krokov:
Pozor! X.X.X-X bude nahradené vašou aktuálne stiahnutou verziou.
tar xzf DrMemory-MacOS-X.X.X-X.tar.gz
mv DrMemory-MacOS-X.X.X-X drmemory
sudo mv drmemory /usr/local/
Následne modifikujeme shellovskú PATH, aby sa nám Dr. Memory lahšie spúšťal.
cd
nano .bash_profile
Otvorí sa súbor .bash_profile pripravený pre editovanie. Ak už tento súbor niečo obsahuje, nemažte to.
Do súboru vložte nasledovný riadok (stačí bežným skopírovaním):
export PATH="/usr/local/drmemory/bin/:$PATH"
Stlačte ctrl+o, následne Enter, na potvrdenie uloženia zmien. Potom stlačte ctrl+x, čím opustíte súbor a jeho editovanie.
Zavrite toto terminálove okno a otvorte nové (tento krok je podstatný!).
Napíšte do terminálu
drmemory
Mali by ste obdržať správu nasledujúceho formátu:
WARNING: this version of Mac OSX is not officially supported by Dr. Memory.
ERROR: no app specified
Usage: drmemory [options] -- <app and args to run>
Run with -help for full option list.
See http://drmemory.org/docs/ for more information.
Použitie DrMemory
Predpokladajme program pozostávajúci z jediného súboru main.c. Prítomnosť memory leakov vo vašom programe otestujete nasledovne. Flagy -m32 -g -fno-inline -fno-omit-frame-pointer sú pre kompiláciu potrebné a binárka skompilovaná bez nich nemusí byť validným vstupom pre aplikáciu Dr. Memory.
gcc -m32 -g -fno-inline -fno-omit-frame-pointer main.c -o main
drmemory -- main
Za príkaz gcc môžete samozrejme pridať flagy ako -Wextra atď., pre zjednodušenie sa tam nenachádzajú.