タグ

gdbに関するgom68のブックマーク (3)

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

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

  • cgdbとgdbのTUIモードでGoのコンソールデバッグをしてみる

    デバッグにはGUIを使ってもよい派なので、liteIDEとかIntellijを使うほうが幸せになりそうですが、Goのコンソールデバッグするために、gdbをコンソールでちょっと使いやすくしたcgdbと、gdbのTUIモードを試してみました。 なお、Goでこれらを利用するにはまずgdbを最新のものにする必要があります。詳細は以前の記事「MacGoのデバッグ環境を構築する」を参照してください。 cgdb cgdbの構成は2ペイン表示になっており、上がコードで下がgdbコンソールになっています。 2つのペインの往き来はvi風に行います。上のコードモードにはESCで入ります。gdbコンソールに戻るにはiを押します。 上のコードモードではスペースキーで現在行にブレークポイントを張れたりします (Solarizedを使っているせいで現在行がすごくわかりづらいです)。 なお、tの一回だけ止まるブレークポ

    cgdbとgdbのTUIモードでGoのコンソールデバッグをしてみる
    gom68
    gom68 2015/01/23
  • gcc+gdbによるプログラムのデバッグ 第1回 ステップ実行、変数の操作、ブレークポイント

    しかし、ブレークポイントという機能はデバッガの手助けなしでは実現できません。 ブレークポイントとはプログラムの強制一時停止を行うポイントで、実行中のプログラムがブレークポイントに遭遇するとプログラムは一時停止され、デバッガによるプログラムへの介入を行えるようになります。 ブレークポイントは次のような場所に設定できます。 指定した行番号のプログラムを実行しようとする瞬間 関数を呼び出した瞬間 その他、C++などでは「例外が発生した瞬間」などにもブレークポイントを設定することができます。 行番号ブレーク ブレークポイントとしてよく使用されるのは、「プログラムの特定の位置」です。 例として、bubblesort.cプログラムのsort関数内で、隣り合う二つの要素を比較している箇所にブレークポイントを設定してみます。 25|/* bubble sort */ 26|void sort(int *a

    gom68
    gom68 2013/04/21
  • 1