#
最近のmacOSの場合
GCC9onMacを見よう
#
インストール方法
- まずはMercurialリポジトリから GCC を取得
1
|
% hg clone ssh://one@www.cr.ie.u-ryukyu.ac.jp/hg/CbC/CbC_gcc (保存先。指定しない場合./CbC_gccになる)
|
- 次にインストール先のディレクトリを作る。ついでにそこに移動。 (!! 必ずCbC_gccの外に作ってね! !!)
1
2
|
% mkdir (いんすとーるするとこ)
% cd (↑でつくったとこ)
|
-
OSX Maverics以降の場合は GMP, MPFR, MPCが必要。configure実行前にインストールする必要がある。
- gcc4.9.0ではGMP 4.2以上, MPFR 2.4.0以上 MPC 0.8.0以上が要求される。
- homebrewでインストールする場合、それぞれのformula名はgmp,mpfr,libmpcです。
-
configureを実行する。この時、インストール先のディレクトリに移動済みであることを確認すること。
1
2
3
|
% (GCCとってきた場所)/configure CFLAGS="-g3 -O0" --prefix=$PWD \
- -disable-nls --disable-bootstrap --enable-languages=c \
- -enable-checking=tree,rtl,assert,types
|
-
各オプションについて
- -g3
gdbでのmacroの展開を可能にする。
- -O0
最適化のカット。
- –prefix=dir
インストール先のディレクトリ指定。
- –disable-nls
gettextのl10nをoffに。
- –disable-bootstrap
通常GCCは3回ビルドされるがこれを1回だけに限定。
- –enable-languages
使用する言語の指定。
- –enable-checking
デバッグ用の指定。browse_tree,debug_rtx,assertがonになる。
-
makeする
1
|
% (インストールした場所)/bin/gcc --version
|
正しくインストールされていればバージョンが見れるはず。見れたら適当なコードで正しく動くか確認すること。
#
gdbで動かす場合の手順
1
|
% (CbC_GCC) (source file) -v |& grep cc1
|
これで実際に実行されるコマンドと引数が取れるので引数だけコピーする。
1
|
% gdb --args (さっきコピーしたものを貼る)
|
これでうごくはず。正しく動かない場合はmakeがちゃんとできているか、configureのオプションを間違えていないかなどを確認する。
#
lldbで動かす場合の手順
実行時の引数は一緒なのでgdbで動かす場合のとこ見て。
#
gdbのちょっとしたテクニック
#
何度も引っかかるタイプのブレークポイントの最後の一回が見たいとき
- おそらくは9999回もコンテニューせずに実行が終了する。ここでbreak pointの情報を見る
見たいとこが何回止まったのかを確認する。already hit 〜 とかかかれているはず。
- 最後の一回で止まるように仕向ける
通常実行したらさっき見た数字分break pointを通過するということなので、その回数-1回分無視するようにする。
1
|
(gdb) ignore (break pointの番号) (さっきの数字-1)
|
これで止まるはず。