タグ

programmingとgccに関するyamanetoshiのブックマーク (9)

  • gcov の使い方 - まめめも

    concov のドキュメントを書こうと思ったけれど、何から書くか困ったので、とりあえずその前に gcov の使い方とはまりどころを書いてみます。 gcov とは C 言語で書かれたプログラムのカバレッジを測定するツールです。gcc に付属しています。 基的な使い方 こういうコードがあるとする。 /* test.c */ #include <stdio.h> int foo(int x, int y) { return x + y; } int bar(int x, int y) { return x - y; } int main(void) { printf("%d\n", foo(2, 3)); printf("%d\n", foo(3, 4)); return 0; } コンパイルする。-coverage をつけると gcov 用のオブジェクトファイルが生成される *1 。 $ g

    gcov の使い方 - まめめも
  • Charming Python: Functional programming in Python, Part 3

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    Charming Python: Functional programming in Python, Part 3
  • GCC とメタプログラミング - 兼雑記

    GCC やっぱすごいなぁという話 まぁコード生成する類のものは全部メタプログラミングだと考えるとします。当時のkinaba先生世界観。例としては C のコードを cpp で C にするとか、 C のコードを gcc で asm にするとか autotools でほげほげとか。 それはともかく最近思いついた(全然コードを読まない)コードリーディング技法として make してみてその標準出力をゆっくり眺めるというものがあります。ファイルの依存関係がわかれば割と内容は予測がついたりします。あと GCC のコード眺める技法として gdb で適当に break しかけてバックトレースを見ると普通に追うよりラクというのがあるのですがそれは別の話。 でまぁ make の出力とか見てると GCC ってすごいメタプログラミングの宝庫だなぁと思ったのでした。特にフロントエンド側よりバックエンド側がにんともかん

    GCC とメタプログラミング - 兼雑記
  • POSIX Threads Programming

    Author: Blaise Barney, Lawrence Livermore National Laboratory, UCRL-MI-133316 Note: This tutorial is no longer supported. It remains for archival purposes. Table of Contents Abstract Pthreads Overview What is a Thread? What are Pthreads? Why Pthreads? Designing Threaded Programs The Pthreads API Compiling Threaded Programs Thread Management Creating and Terminating Threads Passing Arguments to Thr

  • ホワット・ア・ワンダフル・ワールド C/C++ コンパイラでの末尾再帰最適化判定

    なんかプチブームに. 末尾再帰最適化をC/C++上で検知してみたい (higepon さん) 末尾再帰最適化判定 (yaneurao さん) 再帰判定 (shinh さん) んで,ちょっと気になったのが. 再帰の最適化 (masa.edw さん) shinh さんの fact のコードは末尾再帰じゃないけど、こういうのもちゃんと解析して最適化するんだー GCC すげー。 いやいや,ちゃんと末尾再帰のコードですがな… 追記 : 全然末尾再帰じゃないです (寝ぼけすぎ…).末尾再帰 (= ループ) に (GCC が) 変換可能なコード,です. shinh さんのコード (質部分だけ) int fact(int x) { return x == 1 ? 1 : fact(x-1) * x; } は, int fact(int x) { if(x == 1) return 1; else ret

  • DSAS開発者の部屋:オープンソースを楽しむエンジニアの二日目 - ftraceコマンドを書く

    昨日のエントリ オープンソースを楽しむエンジニアの一日 では、特定のプログラムの関数呼び出しをトレースする方法を考えてみました。どうやら、gcc のプロファイリング関数と LD_PRELOAD を使えば比較的簡単に実装できそうだという事がわかりました。 今日はこれらの仕組みを利用して、ftraceコマンドを作ってみましたのでご紹介します。 さすがにシェアードライブラリだけ作って「あとは自分でLD_PRELOAD指定してね☆」というのも使い勝手が悪いので、strace や ltrace と同じような操作感覚で使えるようなコマンドにしてみました。プロファイル関数や LD_PRELOAD の使い方の参考にもなると思いますので、もし興味がありましたら以下のリンクからダウンロードしてご利用下さい。 ftrace-0.90.tar.gz (4215bytes) ※ 5/26追記: naoyaさんからパ

    DSAS開発者の部屋:オープンソースを楽しむエンジニアの二日目 - ftraceコマンドを書く
  • ふつうのLinuxプログラミング Linuxの仕組みから学べるgccプログラミングの王道 - higepon blog

    id:naoyaから「ふつうのLinuxプログラミング Linuxの仕組みから学べるgccプログラミングの王道」を借りて読んだ。 自分はLinuxを体系的に勉強したことがないのでいろいろ知識に抜けがある。 今回読んで気づいただけでも tty周り manのセクション番号の意味 setvbuf getoptの使い方 stat chrootを使うシチュエーション シグナル周り あたりは良く知らなかったので勉強になった。 ふつうのLinuxプログラミング Linuxの仕組みから学べるgccプログラミングの王道posted with amazlet on 06.06.08青木 峰郎 ソフトバンククリエイティブ (2005/07/27) 売り上げランキング: 3,757 Amazon.co.jp で詳細を見る

    ふつうのLinuxプログラミング Linuxの仕組みから学べるgccプログラミングの王道 - higepon blog
  • gcc のデバッグ術

    Unix系コマンドラインユーザーのための、 gcc/g++/g77 による開発におけるデバッグ術を簡単に紹介します。 以下の内容は gcc 2.7.2.3 での動作は確認しています。 g++/g77 でも恐らくは通用すると思うのですが、 ひょっとすると異なる部分があるかもしれません。 筆者は g++/g77 の使用経験がないので、その場合は御容赦を願います。 実行前 キーワード「コンパイルオプション, -Wall, -O2, -O4」 まずは gcc にオプション opt'-Wall' を付けてコンパイルし、 警告がなくなるまでソースを修正します。 これは 常識 です。 次に opt'-O4 -Wall' でコンパイルします。 「未初期化変数の使用」の警告 (`foo' might be used uninitialized in this function) は、 opt'-O4' を付

  • Using and Porting the GNU Compiler Collection (GCC) - Table of Contents

    C、C++、Objective C、Fortranのコンパイル GCCコマンド・オプション オプションの要約 出力の種類を制御するオプション C++プログラムのコンパイル Cの方言を制御するオプション C++の方言を制御するオプション 警告を要求もしくは抑制するオプション ユーザ・プログラムまたはGCCをデバッグするためのオプション 最適化を制御するオプション プリプロセッサを制御するオプション アセンブラへのオプション渡し リンク処理用のオプション ディレクトリ探索のためのオプション ターゲット・マシンとコンパイラ・バージョンの指定 ハードウェアのモデルとコンフィギュレーション M680x0オプション VAXオプション SPARCオプション Convexオプション AMD29Kオプション ARMオプション Thumbオプション MN10200オプション MN10300オプション M32R

  • 1