Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
5
Help us understand the problem. What is going on with this article?
@U_mytake

【Valgrind入門】Macユーザーのための明快Valgrindインストール

Valgrindを超簡単にインストールしたい

valgrindについてちょっと

valgringは、僕のようなC言語ユーザーが直面するメモリーリークとの戦いを手助けしてくれるらしい。

google翻訳によるとvalgrindは

動的分析ツールを構築するための計測フレームワーク

らしい。

僕はとにかくleaksではわからないメモリーリークの場所を発見しなければならず、Valgringの使用を迫られた。

あとちなみに読み方はヴァルグリンドである。
公式によるとこうだ。

「Valgrind」はどう発音するのか?
"Val"は”value (ヴァリュー)”のように、”grind”は短い”i”で ーー つまり”grinned (グリンド)” (”tinned”のリズムで) の方が”grined (グラインド)” (”find”のリズム) と発音するよりも好ましい。
気を悪くしないで欲しい: 最初は皆ほとんど違うのだ。

valgringはこんな感じで使う

$ valgrind ./a.out
$ valgrind --leak-check=full ./a.out

【準備】 インストールするためのインストール

どのツールを使うのか

valgrindについて検索したところ、

$ yum install valgrind

というyumでインストールするコマンドばかりで、謎の沼にはまってしまった。
zsh: command not found: yumと出るので、『Mac yumインストール』とググり出したが見つからない。
なぜyumを攻略できないのか理解できず困っていたところに似たような質問を発見。

そしてやっとyumはMacOS用ではないということを理解した!

yumはLinuxのディストリビューションで使われるパッケージ管理ソフトで、MacOSでは代わりにHomebrewが使われる

時間はかかったがMacユーザーの僕はbrewを使うべきだと理解した!
そう、Macユーザーの皆さん、僕たちはyumではなくbrewを使うのだ!!
Homebrewをインストールしておけば、

$ brew install valgrind

上記のようなyumと同じようなコマンドで、簡単にValgrindインストールできる。

brewを使うには

brewHomebrewのコマンドである。

$ brew --version

Homebrew最新版が存在していれば、次のステップへ。

そうでなければ

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

これをターミナルに貼り付けてhomebrewをインストールする。

Homebrewの日本語サイトもわかりやすいので一読するのをおすすめする。

これで準備は完了だ!

Valgrindインストール

ここまで来ればあとは簡単。

$ brew install valgrind

でvalgrindがインストールできる。
はい便利。

<追記:エラーが出る場合>

macOS High Sierra 以降では上記のコマンドでは以下のようにインストールできないとのエラーが表示される


valgrind: This formula either does not compile or function as expected on macOS
versions newer than High Sierra due to an upstream incompatibility.
Error: An unsatisfied requirement failed this build.

この場合は、代わりに下記コマンドでValgrindをインストールする


brew install --HEAD https://raw.githubusercontent.com/LouisBrunner/valgrind-macos/master/valgrind.rb

version等が更新されているかもしれないので、Valgrind GitHubも参照してください。

もうこれで使えます。
とにかくvalgrindを使わなくてはならない、というときのためのまとめでした。

5
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
U_mytake
42Tokyoに4月から。C & Python 勉強中、C++ちょっと、HTMLちょっっと、CSSちょっっと。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
5
Help us understand the problem. What is going on with this article?