GCC
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*CbC on GCC について [#c2fb1bac]
**インストール方法 [#z007c55d]
- まずはMercurialリポジトリから GCC を取得
% hg clone ssh://one@www.cr.ie.u-ryukyu.ac.jp/hg/CbC/CbC...
- 次にインストール先のディレクトリを作る。ついでにそこに...
% mkdir (いんすとーるするとこ)
% cd (↑でつくったとこ)
- OSX Maverics以降の場合は GMP, MPFR, MPCが必要。configur...
-- gcc4.9.0ではGMP 4.2以上, MPFR 2.4.0以上 MPC 0.8.0以上...
-- homebrewでインストールする場合、それぞれのformula名はg...
- configureを実行する。この時、インストール先のディレクト...
% (GCCとってきた場所)/configure CFLAGS="-g3 -O0" --prefi...
--disable-nls --disable-bootstrap --enable-languages...
--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する
% make && make install
- インストールされたかチェックする。
% (インストールした場所)/bin/gcc --version
正しくインストールされていればバージョンが見れるはず。見...
** gdbで動かす場合の手順 [#t6893674]
- まず動かすときの引数を得る
% (CbC_GCC) (source file) -v |& grep cc1
これで実際に実行されるコマンドと引数が取れるので引数だけ...
- gdbを動かす
% gdb --args (さっきコピーしたものを貼る)
これでうごくはず。正しく動かない場合はmakeがちゃんとでき...
** lldbで動かす場合の手順 [#sb6a6baa]
実行時の引数は一緒なのでgdbで動かす場合のとこ見て。
- lldbを動かす
% lldb (gccのパス)
- 実行
(lldb) r (コピーしたやつ)
** gdbのちょっとしたテクニック [#e3394baf]
*** 何度も引っかかるタイプのブレークポイントの最後の一回...
-まずコンテニューかけまくる
(gdb) c 9999
-おそらくは9999回もコンテニューせずに実行が終了する。ここ...
(gdb) info b
見たいとこが何回止まったのかを確認する。already hit 〜 と...
-最後の一回で止まるように仕向ける
通常実行したらさっき見た数字分break pointを通過するという...
(gdb) ignore (break pointの番号) (さっきの数字-1)
これで止まるはず。
終了行:
*CbC on GCC について [#c2fb1bac]
**インストール方法 [#z007c55d]
- まずはMercurialリポジトリから GCC を取得
% hg clone ssh://one@www.cr.ie.u-ryukyu.ac.jp/hg/CbC/CbC...
- 次にインストール先のディレクトリを作る。ついでにそこに...
% mkdir (いんすとーるするとこ)
% cd (↑でつくったとこ)
- OSX Maverics以降の場合は GMP, MPFR, MPCが必要。configur...
-- gcc4.9.0ではGMP 4.2以上, MPFR 2.4.0以上 MPC 0.8.0以上...
-- homebrewでインストールする場合、それぞれのformula名はg...
- configureを実行する。この時、インストール先のディレクト...
% (GCCとってきた場所)/configure CFLAGS="-g3 -O0" --prefi...
--disable-nls --disable-bootstrap --enable-languages...
--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する
% make && make install
- インストールされたかチェックする。
% (インストールした場所)/bin/gcc --version
正しくインストールされていればバージョンが見れるはず。見...
** gdbで動かす場合の手順 [#t6893674]
- まず動かすときの引数を得る
% (CbC_GCC) (source file) -v |& grep cc1
これで実際に実行されるコマンドと引数が取れるので引数だけ...
- gdbを動かす
% gdb --args (さっきコピーしたものを貼る)
これでうごくはず。正しく動かない場合はmakeがちゃんとでき...
** lldbで動かす場合の手順 [#sb6a6baa]
実行時の引数は一緒なのでgdbで動かす場合のとこ見て。
- lldbを動かす
% lldb (gccのパス)
- 実行
(lldb) r (コピーしたやつ)
** gdbのちょっとしたテクニック [#e3394baf]
*** 何度も引っかかるタイプのブレークポイントの最後の一回...
-まずコンテニューかけまくる
(gdb) c 9999
-おそらくは9999回もコンテニューせずに実行が終了する。ここ...
(gdb) info b
見たいとこが何回止まったのかを確認する。already hit 〜 と...
-最後の一回で止まるように仕向ける
通常実行したらさっき見た数字分break pointを通過するという...
(gdb) ignore (break pointの番号) (さっきの数字-1)
これで止まるはず。
ページ名: