タグ

ブックマーク / blog.google (3)

  • C++ のプログラムのデバッグを楽にする方法

    Google が公開しているソフトウェアの解説シリーズ(→その1 , その2)の続きです。今回は google-glog を使ってスタックトレースを表示する方法についてご紹介します。 C++ でプログラムを書いているとよく遭遇するのがセグメンテーション違反というエラーです。不正なアドレスへのアクセスなどによりセグメンテーション違反が起きると、通常、 UNIX 系の OS では SIGSEGV というシグナルによってプログラムが終了するとともに、 core というファイルが作られます。 core ファイルにはデバッガから参照できるいろいろな情報が残っていますが、多くの場合に役に立つのは、スタックトレースという情報です。スタックトレースを見れば、プログラムがどこでクラッシュしたのか、どのような関数を経由してそこにたどり着いたのかがわかります。プログラムがクラッシュした箇所を特定できれば、単純な

    C++ のプログラムのデバッグを楽にする方法
  • Google Japan Blog: 大規模日本語 n-gram データの公開

    突然ですが、穴埋めクイズです。下線部に入る単語はなんでしょう? グーグルで_____ おそらく、「検索」「調べる」「探す」といった単語を思いつくのではないでしょうか? 実際に、Webにあるドキュメントをくまなく調べ、「グーグルで」の後にくる単語を調べると、「検索」が1位であるとがわかります。 一般に、直前の(N-1)個の単語を見て、次の単語を予測するモデルをN-gram言語モデルといいます。さきほどは、「グーグル」 と 「で」の2単語から次を予想しているので、3-gram言語モデルの例となります。現時点の単語が、直前の(N-1)個のみに影響を受けるという仮説は、一見現実離れしているようですが、実際には非常に有効な場合も多く、かな漢字変換、OCRのエラー訂正、機械翻訳、音声認識などに広く用いられています。たとえば、音声認識の場合、ノイズ等で現時点の単語をシステムが聞き取れなくても、言語モデル

    Google Japan Blog: 大規模日本語 n-gram データの公開
  • Google Japan Blog: Google が公開しているソフトウェアの解説 ( その2 )

    このエントリは、GoogleGoogle Code でオープンソースとして公開しているソフトウェアの解説シリーズの第2回です。 今回は、Google CoreDumper というソフトウェアを紹介します。 このソフトウェアはアプリケーションプログラムから任意のタイミングでコアダンプを出力する機能を提供するライブラリです。 「 コアダンプ 」 はプロセスのある時点での状態を保存したファイルで、デバッグのときなどに利用されます。通常、プログラムが異常終了したときや特定のシグナルを受信したときに OS カーネルがコアダンプファイルを出力し、そのプロセスは終了します。開発者はそのダンプファイルを gdb などのデバッガなどで解析して問題の原因を調査します。 問題が発生してコアダンプが生成される場合以外にも動作中のプロセスのスナップショットをコアダンプファイルとして生成できれば、その時点でのプ

    Google Japan Blog: Google が公開しているソフトウェアの解説 ( その2 )
  • 1