lynx   »   [go: up one dir, main page]

タグ

gdbに関するgologo13のブックマーク (12)

  • gdbを使ったrubyのデバッグ - クックパッド開発者ブログ

    技術部の国分 (@k0kubun) です。 先日byebugの高速化を行っていた最中、変更を加えたbyebugを使っていると一定の確率でrubyがSEGVするバグを発見しました。 私はC言語のコードのデバッグの経験はなかったのですが、デバッガの使い方を調べながらSEGVの原因調査を行いパッチを送ったところ無事取り込まれ、最新の高速なbyebugが安全に使えるようになりました。 その際、ruby自体をデバッグするために必要な情報が分散していて大変だったので、まだrubyのデバッグをしたことがないけれどやってみたいという人を対象に、gdbというデバッガを使ったrubyのデバッグの方法を紹介します。 デバッグ用にrubyをビルドする デバッグ時に変数名やソースコードなどの情報を見るためには、最適化オプションをオフにしてデバッグ用にrubyをビルドしておく必要があります。 rubyのデバッグ用ビル

  • LL脳な人でもこれぐらいは覚えておくとうれしいgdbのつかいかた。または猫でもわかるgdb講座 - tokuhirom's blog

    LL脳な人でもこれぐらいは覚えておくとうれしいgdbのつかいかた。またはでもわかるgdb講座 LLつかってても「ばすえらーになるー」っていう状況ってたまにあるわけですが、LL しか普段つかわないゆとりは、ここでお手あげになってしまったりすることがままあります。 で、「ばすえらーになるんですが」ってときの最低限これだけはやってみたらどうか、という話。「えー、わたし gdb とかわかんないしー」とかいってる人でもこれぐらいならできるんじゃないかなーっと。 perl t/00_load.tというコマンドで segv するという場合、gdb をつかって % gdb --args perl t/00_load.tとうつ。 すると、以下のようにプロンプトがでるので、"run" とうつ。これでスクリプトがはしりはじめる。 % gdb --args perl t/00_load.t GNU gdb (G

  • GDBデバッギング覚え書き - しばそんノート

    使い方をよく忘れるので…。 リファレンス的なものではなく、要点のみの覚え書きです。 以下の記述は gcc 4.1.2 gdb 6.8 を前提としています。 コンパイル "-g"オプションは必須 "-O"系オプション(最適化)は付けない*1 stripしちゃダメ プログラムの実行 $ gdb (progoram) で起動して (gdb) runプログラムに引数を与えることもできます。また、標準入力、標準出力もリダイレクトで指定できます。 (gdb) run (arguments) < (input file) > (output file)以下のコマンドで環境変数も設定できるので、この辺を組み合わせればCGIのデバッグも可能です。 (gdb) set env LANG=C環境変数の確認は以下の通り。 (gdb) show envCGIのデバッグをする場合はこんな感じになるのかな? (gdb)

    GDBデバッギング覚え書き - しばそんノート
    gologo13
    gologo13 2012/07/06
    知らないことが書いてあって、結構いい。
  • Page not found - ファイヤープロジェクト

    The page you are trying to reach does not exist, or has been moved. Please use the menus or the search box to find what you are looking for.

    gologo13
    gologo13 2011/03/21
    gdb でスタックフレームまで見れるのか。すごい
  • インフラエンジニアがSegmentation fault をなんとか治してみる - メモとかそんな感じなやつ

    普段Webサーバを運用していて、めんどくさいトラブルのひとつに「Segmentation fault」があります。 あれー?なんか500エラーがでるなーなんて思ってログを見るとSegmentation faultになってるときは死にたくなります。 そもそもSegmentation faultはメモリ上にあるデータに対して不正が行われたときに起こるもので、 インフラエンジニアにとってはなかなか手がだせないところでもあります。 それでもなんとかして治さないといけないわけなので せめてどのプログラムが悪さしてるかどうかぐらいは調べ上げてみます。 apacheでのログ apache + mod_perl での環境です。 こんな感じでエラーがでます。 #tail error_log [notice] child pid 26028 exit signal Segmentation fault (11

    インフラエンジニアがSegmentation fault をなんとか治してみる - メモとかそんな感じなやつ
  • http://www-ise3.ise.eng.osaka-u.ac.jp/miura/programLecture/lecture5.html

    gologo13
    gologo13 2010/10/21
  • Debugging with GDB - Table of Contents

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

    gologo13
    gologo13 2010/10/19
  • アイフル 申込み入ロ

    賃貸住宅住まい、独身の方、所得も低額という状態でも年収の3分の1より少ない金額を希望するならば、審査でOKとなることも期待されると言ってよいと思います。 長い人生の中においては、どんな人でも思いがけず、待ったなしでキャッシュが入用になることがあるでしょう。こういった時には、即日融資に対応しているキャッシングが非常に役に立つと思います。 「銀行で申請するカードローン、はたまた信販系の貸付サービスというのは、実際のところ審査に時間をかけるのではないか?]と心配しているかもしれませんが、ここ最近では即日融資を実施している金融業者も次第に多くなっているとのことです。 どんな内容のローンを組むとしましても、万が一キャッシングによってお金を借りている状況なら、ローン利用による借入金は縮減されることは考えられるでしょう。 給料日が来るまで、数日間助けて貰えるのがキャッシングではないでしょうか?緊急の時だ

    アイフル 申込み入ロ
    gologo13
    gologo13 2010/10/01
  • GDBコマンド一覧

    run プログラムを実行します。 run 何も引数を渡さずに実行します。 run arguments argumentsを引数に指定して実行します。 例えば「-v -o filename」を引数として起動したい場合はrun -v -o filenameとします。 runではプログラムの標準入出力をリダイレクトすることが可能です。 標準出力をファイルにリダイレクトするには run > filename 標準入力をファイルから読み込むには run < filename 標準出力をファイルに標準入力をファイルから読む込むには run < infile > outfile ↑ quit GDBを終了します。 quit GDBを終了します ↑ shell シェルコマンドを実行します。 shell シェル(通常 /bin/sh)を起動します。 シェルを終了するとGDBに戻ります

    gologo13
    gologo13 2010/04/24
  • tips : tips/02.プログラミングなど/C言語/C言語のLinux環境.txt

    gccとかgdbとかgoogle-perftoolsとか、C言語のLinux環境関連のメモ コンパイル # バージョンを確認する gcc -dumpversion # オプションつけないでコンパイル gcc xxx.c → a.out という名前の実行ファイルが出来る。実行権限もつけてくれるようだ。 # 実行ファイル名を指定したいとき gcc -o xxx xxx.c → xxx という名前の実行ファイルが出来る # その他のオプション -Wall : 警告を全部みせる -O1 (-O)  : ゆるい最適化 -O2       : 普通の最適化 (普通はこれをつかうそうだ) -O3       : 強力な最適化 (コンパイラのバグを引き当てたりするそうだ) -g (== -g2) : デバッグ用のシンボル -g3         : マクロも展開する -g

  • gdb の使い方・デバッグ方法まとめ

    たとえば、変数 var の値を2進数で表示したい場合は、次のように指定します。 (gdb) p/t var 一覧表示 whatis 変数の型を調べる。 info b 今設定しているブレークポイントの一覧を表示 セグメントフォルトをした後に利用すれば、どの関数で発生したか確認できます。 info stack 関数の呼び出しスタックの一覧を表示 info Thread 存在しているスレッドの一覧を表示 異なるアドレスにおける処理継続 以下のコマンドを使用することで、ユーザが選択したアドレスにおいて実行を継続させることができます jump linespec linespecで指定される行において、実行を再開 jump *address addressで指定されるアドレスにある命令から、実行を再開 アドレスが分かっている場合のメモリリーク出力 xはhexの意味です。 (gdb) p (char*)

    gdb の使い方・デバッグ方法まとめ
    gologo13
    gologo13 2010/04/04
  • 既に起動しているプロセスをgdbで制御する:Geekなぺーじ

    デバッグやテストを行っていると、プログラムが無限ループに入り込んで返ってこないような状況が発生することがあります。 そのバグが再現の難しいものであれば「gdbを使って起動しとけば良かった。。。」というような気分になる時があります。 しかし、gdbには既に起動しているプログラムの制御を横から奪い取ってデバッグするというありがたい機能があります。 ここでは、既に起動しているプログラムをgdbでいじる方法を説明したいと思います。 実際にデバッグをする方法を説明するというよりは、gdbで動いているプロセスにアタッチする例を説明します。 その後のデバッグに関しては、いつものgdbの使い方をしていただければ大丈夫です。 とりあえずアタッチしてみる 既に起動しているプロセスをgdbを解析するのは非常に簡単です。 単にgdbでプロセスにアタッチするだけです。 gdbでプロセスにアタッチする方法は2つありま

    gologo13
    gologo13 2010/04/04
    gdbには既に起動しているプログラムの制御を横から奪い取ってデバッグするというありがたい機能があります。
  • 1
Лучший частный хостинг