タグ

gdbに関するkiririmodeのブックマーク (6)

  • Perlの中をgdbで覗く | BLOG - DeNA Engineering

    こんにちは。DeNAの樋口です。 Perlで書かれたアプリを動かしているときに、Perlのプロセスが今コードの何処を実行中なのか知りたいことがよくあります。そのような場合には、gdbで実行中のプロセスにアタッチし、Perlインタプリタインスタンスの内部を覗くことによって調べることができます。また同様の方法で、プロセスのコアダンプを取り、後でじっくりデバッガで調べることも可能です。 デバッグシンボル付きのPerlを用意する まず前提として、Perlの実行形式にデバッグシンボルが付いている必要があります。無い場合でも不可能ではありませんが、現実的には難しいでしょう。デバッグシンボル付きのPerlを用意する方法はOSによりますが、例えばrpmを使っているGNU/Linuxディストリビューションであればperl-debuginfoのように分離されたパッケージにデバッグシンボルが入っていることが多い

    Perlの中をgdbで覗く | BLOG - DeNA Engineering
  • GNU Emacs Manual

    The Emacs Editor Emacs is the advanced, extensible, customizable, self-documenting editor. This manual describes how to edit with Emacs and some of the ways to customize it; it corresponds to GNU Emacs version 29.1.90. The GNU Emacs website is at https://www.gnu.org/software/emacs/. To view this manual in other formats, click here. You can also purchase a printed copy from the FSF store. For infor

  • 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とかプログラミングの覚え書き -
    kiririmode
    kiririmode 2008/04/27
    テンプレート関数のそれぞれに対してブレークポイントが設定できるようになった
  • 例外の発生箇所を 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
    kiririmode
    kiririmode 2007/08/25
    これは使える!!
  • 普通のやつらの下を行け: C でバックトレース表示 - bkブログ

    普通のやつらの下を行け: C でバックトレース表示 普通のやつらの下を行けの第2回として、今回は glibc の関数を使って C でバックトレース (スタックトレース) の表示を行ってみます。 バックトレースとは バックトレースとは、大ざっぱに言うと、現在の関数に至るまでの道筋です。たとえば、次の Ruby プログラムを実行すると、 1 / 0 の行で例外が発生して、バックトレースの表示とともにプログラムは異常終了します。 def foo 1 / 0 end def main foo end main この例では main から foo を呼び foo の中の 1 / 0 の部分で例外が発生しています。 % ruby divide-by-zero.rb divide-by-zero.rb:2:in `/': divided by 0 (ZeroDivisionError) from div

    kiririmode
    kiririmode 2007/08/25
    SEGFAULT_SIGNALSってなに?
  • GDB マニュアル - Table of Contents

    GDB の要約 「GNU 一般公有使用許諾書」の和訳文書と再配布について ** 和文文書についての注意 ** 和文文書自体の再配布に関して GNU 一般公有使用許諾書 はじめに GNU 一般公有使用許諾の下での複製、頒布、変更に関する条項と条件 付録: あなたの新しいプログラムにこれらの条項を適用する方� 訳者の序 GDB の入出力の慣例 GDB が扱うファイルの解説 引数によるファイルの指定 コマンドによるファイルの指定 デバッグのためのプログラムのコンパイル方� GDB の下でのプログラム実行方� あなたのプログラムに渡す引数 あなたのプログラムの環境 あなたのプログラムのワーキングディレクトリ あなたのプログラムへの入出力 既に起動しているプロセスのデバッギング チャイルドプロセスを kill するには 停止と継続 シグナル ブレークポイント ブレークポイントの設定方� ブレークポイ

  • 1