[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

タグ

debugに関するtettsyunのブックマーク (10)

  • カーネル挙動を追尾する「DTrace」の実力

    Solaris 10の強化機能としてクローズアップされることが多い「DTrace」。さまざまなサービスが並列稼働する基幹サーバでは、カーネル挙動によってボトルネックを判断することも多い。DTraceは、解決するための打開策となるのか? 実例サンプルで検証していく。 Solaris 10の目玉となる機能のひとつに、実行中のサーバ情報をいつでも取得できる「DTrace」がある。DTraceは、稼働サーバ上で思うようなパフォーマンスが得られなかったり、トラブルが生じた際に原因究明するのに役立つ機能だ。この「OS選択の新常識」Solaris特集では、DTraceを使うと具体的にどのような情報を取得でき? どのようなシーンで役立つのか? その実例を解説していくことにしよう。 DTraceの仕組み まずは簡単に、DTraceの仕組みから説明する。 Solaris 10の内部には、「プローブ」と呼ばれる

    カーネル挙動を追尾する「DTrace」の実力
  • Build and implement a single sign-on solution

  • monkey coders' - Guard Malloc(libgmalloc) について

    ここは管理人pigeon6と同じようなコンピュータとプログラムとアレゲが好きなおさるさんのためのサイトです。たぶん。 Guard Mallocはmalloc, callocなどで確保したメモリに対して不正な操作を行ってしまう類のバグの検出を助けるデバッグ用のライブラリです。Guard Mallocを使ってアプリケーションを実行すると、そうしたメモリに対してのバグがある場合、アプリケーションがバグの位置でハングアップします。 - Manual page for libgmalloc Xcode上でのGuard Mallocの使い方 メニューから「実行>Guard Mallocを有効にする」を選択して、チェックをつけるとGuard Mallocを有効に出来ます。Guard Mallocには各種オプションがありますが、これは実行時の環境変数をセットすることで設定します。 Guard Malloc

    tettsyun
    tettsyun 2010/10/22
    malloc 関係のバグ検出のためのデバッグライブラリ
  • How To Use Google Logging Library (glog)

    (as of ) Introduction Google glog is a library that implements application-level logging. This library provides logging APIs based on C++-style streams and various helper macros. You can log a message by simply streaming things to LOG(<a particular severity level>), e.g. #include <glog/logging.h> int main(int argc, char* argv[]) { // Initialize Google's logging library. google::InitGoogleLogging(

    tettsyun
    tettsyun 2010/01/04
    google-glog
  • C++ のプログラムのデバッグを楽にする方法

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

    C++ のプログラムのデバッグを楽にする方法
    tettsyun
    tettsyun 2010/01/04
    google-glog
  • C(++)言語: valgrindの使い方 (memcheck)

    (2-1) Memcheck: メモリエラーを検出する Memcheckが検出出来るエラーには以下のようなモノが有る。 メモリリーク 初期化されていない値の使用 freeされた領域へのアクセス mallocされた領域より後の領域へのアクセス 不正なスタック領域へのアクセス malloc/new/new []とfree/delete/delete []の対応の不一致 memcpyでsrcとdestの領域が被っている (2-1-1) Memcheck: メモリリーク static char *s; void leaking(void) { s = (char*)malloc(100); s[0] = 'a'; } int main(void) { leaking(); leaking(); leaking(); } ==29024== LEAK SUMMARY: ==29024== defin

  • Debugging with GDB - Table of Contents

    The GNU Source-Level Debugger Seventh Edition, for GDB version 4.18 February 1999 Richard M. Stallman and Roland H. Pesch GDBの要約 フリー・ソフトウェア GDBに貢献した人々 GDBセッションのサンプル GDBの起動・終了 GDBの起動 ファイルの選択 モードの選択 GDBの終了 シェル・コマンド GDB コマンド コマンドの構文 コマンド名の補完 ヘルプの表示 GDB配下でのプログラムの実行 デバッグのためのコンパイル ユーザ・プログラムの起動 ユーザ・プログラムの引数 ユーザ・プログラムの環境 ユーザ・プログラムの作業ディレクトリ ユーザ・プログラムの入出力 既に実行中のプロセスのデバッグ 子プロセスの終了 プロセス情報 マルチスレッド・プログラムのデバッグ マ

    tettsyun
    tettsyun 2009/11/09
    manual RMS
  • 外部記憶装置:gdbメモ segmentation fault編

    kenji 15:15 コメントする カテゴリー:C++ Linux上でC++でプログラムを作成すると、segmentation faultで落ちてしまうことがある。 Javaと違い、スタックトレースをデフォルトで表示しないため、どこで落ちたのかわかりにくい。 で、そんなときはgdbの出番というわけだ。 gdbは取っつきにくく、デバッグするたびにgdbに関する情報を検索するのでは効率が悪いのでメモに残しておく。 まず実行ファイルにデバッグ情報を付与するためコンパイルオプションを設定。 最適化はO2ぐらいにしとくのが良いらしい。 -O2 -ggdb そしてgdbから実行。 $ gdb ./exefile デバッグ対象ファイルの実行はrコマンドで実行。 引数を与える場合は以下のような感じで。 (gdb) r arg1 arg2 こけたらソースコードの位置を教えてくれる。 いちいちgdbから実行

    tettsyun
    tettsyun 2009/09/29
    gdb segmentation fault
  • ダンプされたcoreを元にエラー原因を解析する方法 - Hello, world! - s21g

    Railsアプリを書いてる場合はあまり関係ないですが、 セグメンテーションエラー(SEGV)などに遭遇した場合に、 原因を調査する方法を紹介します。 まずは、coreを吐かせるためにulimitの設定をします。

    tettsyun
    tettsyun 2009/09/29
    gdb
  • Amazon.co.jp: 実践 デバッグ技法 ―GDB、DDD、Eclipseによるデバッギング: Norman Matloff (著), Peter Salzman (著), 相川愛三 (翻訳): 本

    Amazon.co.jp: 実践 デバッグ技法 ―GDB、DDD、Eclipseによるデバッギング: Norman Matloff (著), Peter Salzman (著), 相川愛三 (翻訳): 本
  • 1