タグ

gdbに関するlizyのブックマーク (14)

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

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

  • Announcing the VS GDB Debugger extension - C++ Team Blog

    Earlier this year I wrote a post on how you could debug C++ code on Linux from Visual Studio. It was a bit cumbersome, but it was doable. Today we are releasing the Visual Studio GDB Debugger extension preview. This will enable debugging remote Linux targets including IoT devices. To use this extension, you need to have Visual Studio 2015 Community or higher with the Visual C++ tools for Android i

    Announcing the VS GDB Debugger extension - C++ Team Blog
    lizy
    lizy 2015/11/24
    sshでリモート接続したLinux上でgdbを動かして、それをWin上のVisualStudioで制御するらしい。便利そう
  • コンソールから切れたプロセスを標準出力につなげなおす - 絶品ゆどうふのタレ

    不慣れな環境を不意にいじった時にあるあるネタ。 とりあえずー とか言って勢いで書いたsetupスクリプトを実行してみたら意外と時間かかって、 ちょっと目を離した隙にsshの接続が切れちゃいました! 。。。ありますよね。ほんとよくありますよね。 そうなる予感はあったんだ なんて後の祭りです。ふとした油断から、screenもnohupすらも使わずにやってしまって、こんなことに。 shellがHUPしなかったからプロセスは生きてるものの、ログが見れないから進行状況がわからない。 うまく行ってるのかどうかモヤモヤした気持ちのまま、プロセスが終わるのをじっと待つ。。。 まぁ実に切ないです。 こんな時、いつも思うこと。 このプロセスの出力、もっかいstdoutに繋げられたらいいのに。。。 はい。というわけでつなげましょう。 長い前座ですみません。 切り離したプロセスを用意 #!/bin/bash wh

    コンソールから切れたプロセスを標準出力につなげなおす - 絶品ゆどうふのタレ
    lizy
    lizy 2014/02/06
    便利なコマンドがあるのか、と思ったら以外と荒技だった
  • 革命の日々! [書評] 実践デバッグ技法

    御礼 なんで献もらえたのかまったく不明なんだけど(^^; ちまたではデバッグ三部作のトリを飾る一作と呼ばれているらしい。 いちおう、DDDとEclipseについても書いてあるけど、メインはどうみてもgdb。なので、Linux上でC言語開発をする羽目になった新人プログラマが読むと、一気にスキルが上がってお得。 昔、新人教育をやっていた時代にこれがあったら、全員に買わせたかもしれん。 ちょっと、長いけど目次を引用 推薦の言葉 まえがき 1章 初心者にもプロにも役立つ予備知識 1.1 書で扱うデバッガ 1.2 使用するプログラミング言語 1.3 デバッグの原則 1.3.1 デバッグの質:確認の原則 1.3.2 確認の原則にとってデバッガの価値とは? 1.3.3 その他のデバッグ原則 1.4 テキストベース vs. GUIベース(そして両者の折衷形態) 1.4.1 インタフェースの簡単な

  • Apacheモジュールの作成とgdbとloggerでのデバッグ方法 - よねのはてな

    ApacheのFilterモジュールを作った話しをしたらid:c9katayamaに情報公開しろと言われたままでしたので公開します。 C言語の勉強しようかな、Apache2.xのモジュールを作ってみようかな、gdb使ってデバッグしてみようかなと考えてた人にお勧めです。 JavaでのServletの開発経験のある人であれば、Filterの処理の動きやリクエストコンテキストの考え方は分かり易いはずなので、エントリを読み終わる頃にはApacheのモジュールをgdbでデバッグしながら作る事が出来るはずです。 mod_orzを作成 今回はmod_orzというApacheモジュールを作成します。 Apacheモジュールを作成する際には、apxsというモジュール開発用のコマンドを使用しテンプレートを作ります。 # apxs -g -n orz Creating [DIR] orz Creating [F

    Apacheモジュールの作成とgdbとloggerでのデバッグ方法 - よねのはてな
  • PHPでのデバッグ方法

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog おひさしぶりです。オークション担当の山崎 賢です。 前回はPHP Serialize についてでしたが、 今回はPHPでのデバッグに関してお話します。 基PHPはインタプリタ(厳密にはPHPは内部で一度コンパイルしていますのでインタプリタとは言い切れませんが) のデバッグではログ埋め込みが手軽です。 しかし、まれにSIGSEGVやSIGBUSなどでPHPスクリプトが落ちることがあり、途方にくれます。 地道にログを埋め込んでいき、箇所を特定するのも手法の1つですが、今回はgdbを用いたデバッグ方法を記載したいと思います。 ■STEP1 まずは、プログラムが落ちることを目的として以下のようなPHP Moduleを作成します。 ・ ・

    PHPでのデバッグ方法
  • [iPhone] GDBでデバッグ:p(print)コマンド - satoko's blog - s21g

    iPhone app開発ではデバッグにGDBを使うのですが、全然活用できていませんでした。しかしいちいちNSLogで出力しているのでは割に合わないというので、ちょっと調べて使ってみたらpコマンドが便利だというのが分かりました。 多分GDBをどれだけ流暢に使えるかでiPhone開発速度も全然変わってくるのだなぁというのが所感です。 コマンド p(print)

  • 2008-08-24 - 未来のいつか/hyoshiokの日記 - gdb を emacs から使う

    アプリケーションの開発時にはデバッガーを使うのはあたりまえだろう。そのデバッガーを使えなくて何がプログラマだ、くらいの事は思うのだけど、世のプログラミング言語の入門書にデバッグの仕方もましてやデバッガーの使い方も載っていない。 その隙間を誰がうめるのか。じゃあ、わたしが埋める。埋めてみた。うまくいったかいかないかは分らないがともかくやってみた。 プログラミングキャンプである。若いプログラマ志願者と一緒になって4泊5日のブートキャンプである。鬼軍曹がびしびし鍛えあげるブートキャンプである。 デバッガーを上手に使えなければ戦場で討死する。死ぬな。生きろ。 デバッガーの使い方を教えるのは、戦場に行く前の最初の一歩だろう。防弾チョッキかヘルメットくらいの役には立つ。もし日のプログラミング現場で、デバッガの使い方を教えていないとしたらプログラマとしてどのように生きていくのかを知らない人々によって、

    2008-08-24 - 未来のいつか/hyoshiokの日記 - gdb を emacs から使う
  • Perlプログラマのためのgdb入門(at Shibuya.pm #9 LT) - とあるはてな社員の日記

    先日のShibuya.pm #9のLightening Talkで「gdbでXS on mod_perlをデバッグ」という話をしてきました。XSを使い出すと、従来のPerl的デバッグだけでは不十分なのでgdbをうまく使って、効率的にデバッグしましょう、という話です。実は、はてな社内では1年近く前に勉強で話したネタだったのですが、ようやく公開することができました。 Shibuya.pmでは5分という枠があったのでショートver.でしたが、ここでは制限はないので、来のロングバージョンの資料をアップします。ちょっと公開できない情報が混っていたので、xxxで隠していますが、ご了承ください。 ちなみに、Rubyとかでも似た感じでデバッグできると思うので、そちらの人も参考にしてください。長いよ!という人は、最後の「これは設定しておけ的gdb初期化マクロ」だけでもどうぞ。かなり便利です。 (資料公開が

    Perlプログラマのためのgdb入門(at Shibuya.pm #9 LT) - とあるはてな社員の日記
  • PHPの実行をPHPのソースコード(C言語)のレベルで見る方法 - suztomoのはてなダイアリー

    PHPはソースコードを読めばわかるとおりC言語で書いてあります。 そのC言語の中でPHPがどんな処理をしているのかをデバッガであるgdbを用いて見ることができるのでそれを紹介します。まぁ普通のgdbの使い方なんですが:p ソースをダウンロードしてコンパイル PHP-5.2.6のソースをダウンロードします。 まず./configureするとのMakefileができます。 このMakefileの中で-gオプションがついていることを確認しましょう。*1 これがデバッガ(gdb)用のオプションで、コンパイルされたバイナリファイルにソースコードとの対応付けができます。 次にmakeします。時間がかかります。 サンプルファイル makeしている間に次のようなPHPファイルを作成しましょう。 <?php $i = "12"; $k = intval($i); ?> これは文字列の"12"をintval関

    PHPの実行をPHPのソースコード(C言語)のレベルで見る方法 - suztomoのはてなダイアリー
  • c++のデバッグをするならgdb-6.8を使いましょう。 - ぴょぴょぴょ? - Linuxとかプログラミングの覚え書き -

    2008年の3月にリリースされたgdb-6.8の目玉機能の一つに「C++サポートの強化」があります*1。この機能を使うと、STLやboostのようなテンプレートを使ったコードのデバッグがかなり楽になります。C++使いの方は、是非gdbを6.8にupgradeしましょう。 具体的に、以下のようなコードを使って、「C++サポートの強化」について説明します。 #include <iostream> using namespace std; template <typename T> class A { public: void func() { cout << sizeof(T) << endl; } }; int main() { A<int> integer; A<double> real; integer.func(); real.func(); return 0; } このコードに対して

    c++のデバッグをするならgdb-6.8を使いましょう。 - ぴょぴょぴょ? - Linuxとかプログラミングの覚え書き -
  • ウノウラボ Unoh Labs: gdbの使い方

    今年の2月にマカーになったbokkoです。どうも僕の使っているフォントがほかの人には見づらいらしく、「そのフォントはねぇよw」と言われたり、外付けのキーボードを使っているせいか、「MacBookの意味なし!」と社内で言われてたりしています。 今日はgdbのお話です。gdbは非常に広く使われているデバッガで、特にC、C++のプログラムをデバッグするのによく使われています。 デバッガの使い方 プログラムをデバッグする際、例えば以下の方法が挙げられます。 1. ソースコードを読む 2. ソースコードに出力関数を仕込む(例えばprintf) 3. ソースコードを書き換えて実行してみる これで十分な場合もありますが、そうでない場合もあります。これらの方法ではプログラムを実行している最中にこちらからソースコードレベルでのアクションを起こすことが難しいので、例えば、プログラムをある時点で止めて変数の

    lizy
    lizy 2008/04/05
    明朝体もアレだけど、なんか間延びしてる
  • zoome.jp

  • 例外の発生箇所を gdb で捕捉する - odz buffer

    gdb で catch throw を使えば例外を捕捉できるという話をコメントで教えていただいたので、試してみた。 #include <string> static void foo(void); int main() { foo(); return 0; } static void foo() { std::string s = "abc"; s.replace(-1, 0, "d"); } % g++ -g -Wall -W -O2 exc_bt.cpp -o exc_bt % gdb exc_bt GNU gdb 6.4.90-debian Copyright (C) 2006 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you

    例外の発生箇所を gdb で捕捉する - odz buffer
  • 1