タグ

gdbに関するkanbayashiのブックマーク (15)

  • Electric Fenceを使ってみる

    $Id: howto-efence.html,v 1.1 2000/07/05 13:43:38 sakane Exp $ %Hd: Electric Fenceを使ってみる 何? 環境変数 マニュアルで推奨されている使い方 その他 o 何? 自分の技術力を越えたプログラム書く時に超便利なツール。 できる事 o バッファ・オーバーラン o バッファ・アンダーラン o 開放した領域を触る o サイズ 0の malloc を見つけることができる。 コンパイル時に libefence.a をリンクする事で malloc(3)や free(3)を置き換える。 欠点は o 激しくメモリを使う。 o プログラム動作が異常に遅くなる。 何はともあれ使ってみる。 #include #include #include int main() { char *c; c = malloc(4); c[3]

    kanbayashi
    kanbayashi 2008/06/18
    バッファオーバーランとかを見つけられます
  • gcc のデバッグ術

    Unix系コマンドラインユーザーのための、 gcc/g++/g77 による開発におけるデバッグ術を簡単に紹介します。 以下の内容は gcc 2.7.2.3 での動作は確認しています。 g++/g77 でも恐らくは通用すると思うのですが、 ひょっとすると異なる部分があるかもしれません。 筆者は g++/g77 の使用経験がないので、その場合は御容赦を願います。 実行前 キーワード「コンパイルオプション, -Wall, -O2, -O4」 まずは gcc にオプション opt'-Wall' を付けてコンパイルし、 警告がなくなるまでソースを修正します。 これは 常識 です。 次に opt'-O4 -Wall' でコンパイルします。 「未初期化変数の使用」の警告 (`foo' might be used uninitialized in this function) は、 opt'-O4' を付

  • Develogger: Emacs上でGDBを使用してデバッグする

    Emacs上でGDBを使用してC言語のプログラムをデバッグする方法をまとめます。 デバッグするプログラムは「sample.c」という簡単なプログラムです。 使用環境: Ubuntu Linux7.10 Emacs22 GDB6.6 ■ sample.c #include <stdio.h> void greeting(char *name); int main(int argc, char *argv[]) { int num1 = 10; int num2 = 100; int result = num1 + num2; printf("result=%d\n", result); greeting("satoshi"); return 0; } void greeting(char *name) { printf("Hello %s.\n", name); } 1. まず最初に「sam

  • http://www.ljfind.com/post/98990618/

  • [Qemu-devel] Re: How to debug Linux kernel on qemu with kgdb?

  • ソースコードを読むための技術

    $Id: readingcode.html,v 1.13 2003/12/06 00:01:08 aamine Exp $ 2006-05-02 gonzui 追加。thanks: 冨山さん 2003-12-03 ltrace と sotrace を追加 2003-12-03 ツールのところに DDD を追加。thanks: 和田さん 2003-05-27 VCG, SXT などについて追加。thanks: 梅沢さん 2003-05-27 これもすっかり忘れていた strace, ktrace, truss, etags などについて追加 2002-08-30 すっかり忘れていた ctags を追加 2002-07-07 匿名希望さんからメールでいただいた情報を追加 (動的コールグラフ) 2002-06-13 日記経由でいただいた意見をもとに文章を追加。thanks: 柳川さん、まつもとさ

  • リモートデバッグの遊び方

    目次 はじめに リモートデバッグのしくみ gdbbuild gdbserverもどきの実装 gdbserverもどきの使い方 その他 履歴 はじめに シリアル接続されたPPCターゲットのリモートデバッグスタブ(gdbserverもどき) の使い方などをまとめてみました。ターゲットが物PPCなのでイマイチ遊べる人が 少ないと思うのですが、そんときは単なる読み物として楽しんでください (<楽しめるのか?)。 gdbの日語ドキュメントとして、 KI's Unofficial GNU Manual Translation Project を大いに参考にさせていただきました(GDBのページからもリンクされていて、 ほとんどofficialのような感じです)。こちらの方も合わせて参照して いたくと、より何かが(???)深まるかも知れません。 リモートデバッ

  • http://www.trashbox.jp/~moriwaka/doc/gdb-4.18/gdb-ja_14.html

  • redhat updateマニュアル

    Planning Important planning recommendations and guidance to review before deploying. Considerations in adopting RHEL 9Key differences between RHEL 8 and RHEL 9 Getting the most from your Support experienceGathering troubleshooting information from RHEL servers with the sos utility Package manifestPackage listing for Red Hat Enterprise Linux 9 Interactively installing RHEL from installation mediaIn

  • Linuxでクラッシュダンプを採取(1) 〜 kexec + kdump を使ってみる 〜 : DSAS開発者の部屋

    専用パーティーションを切らずにシステムを構築してしまったがために、クラッシュダンプを採取できなくて苦しんでいる人(って私ですが)にとってはとっても魅力的な仕組みがカーネルに取り込まれたみたいです。導入手順も Documentation/kdump/kdump.txt に非常にわかりやすく書かれているので、比較的スムーズに組み込むことができそうな予感がします。 kexec の機能を利用して別のカーネル(kdumpを組み込んだもの)を起動すると、/proc/vmcore から元のカーネルのクラッシュダンプを採取できるというものなので、通常利用するカーネル(以下、ファーストカーネル)と、パニック時に動き始めるカーネル(以下、セカンドカーネル)の二つのカーネルを作る必要があります。 以下、kdump.txt より抜粋 A) First kernel or regular kernel: -----

    Linuxでクラッシュダンプを採取(1) 〜 kexec + kdump を使ってみる 〜 : DSAS開発者の部屋
  • White's Free Talk : 2000年12月後半

    ……のはずが、暇にまかせてProgressiveの原稿書いたりとか、ベアルファレスをやってたりとか。 あー、GameDeep用にpLaTeX回りの設定もやってましたねぇ。 おうちのWindows機のpLaTeXとGhostScriptに、にフォント追加してdvipskで変換もできるようにしました。ろくなドキュメントもみずにやったので、時間かかりまくり。素直にTeX で多書体をあたりから文書あさればいいのに、あれこれ試行錯誤してました。 pLaTeX用には追加フォント用スタイルファイル・fd(font description?)・tfm (tex font metric)を追加。dvipsk用にはvf (virtual font)の追加とTeX -> PSフォント置き換えテーブルの追記。でもって、GhostScript用にはvflib用のTrueTypeフォント追加設定を行ないましたです。そ

  • 組み込みLinuxカーネル構築の実際

    5. Linuxカーネルのデバッグ手法 カーネルがうまくブートしない、動作がおかしい、デバイスドライバが呼び出されないといった場合、カーネルをデバッグする必要が生じます。カーネルのデバッグには様々な方法がありますが、節ではkgdbについて説明します。 kgdbを使用するためには、カーネルのコンフィグレーションでKernel hackingの項目を開き、kgdbをオンにしてカーネルをビルドする必要があります。そして、ビルドしたカーネルをターゲットにダウンロードし、実行します。すると、カーネルが部分的にブートし、$T0540:c0009a34;01:c015be40;#80(gdbのRemore Serial Protcolです)のようにgdbの接続待ちメッセージを出力して停止します。この状態になったら、ホスト上のgdbからターゲットボード上のカーネルに接続することが出来ます。もちろん、ネッ

  • ユメのチカラ: プロセスプログラミングの実践方法

    学ぶ方法を学ぶことは重要だ。知識は陳腐化する。しかし、学ぶ方法というのは、道具立てが変わってもかなり安定的で変化は少ない。 インターネットのおかげで確かに知識の取得方法は劇的に変化した。量的な変化が質的な変化に転換した。なんでもかんでもインターネットで検索してからことをはじめるという感じになってしまった。あんまりじっくり考える機会がなくなったような気がしないでもない。 かつてプロセスプログラミングと言う概念が流行った。最近ではあんまり言わないがソフトウェア開発の究極の姿だと言われた。ソフトウェアは人が作るのだが(当たり前だけど)、そのプロセスを厳密に記述していければ、つまりコンピュータが理解可能なくらい精密に記述できれば、ソフトウェア作製も自動化できるのではないかというアイデアである。随分荒唐無稽なことを言うとあなたは思うかもしれないがあながち夢物語ではない。 例えば、ソフトウェア開発では

    kanbayashi
    kanbayashi 2007/09/03
    プロセスプログラミングの第一歩はシェルの履歴を保存することにある。
  • ユメのチカラ: デバッグの話(昔の日記から)

    わたしは、90年代にシリコンバレーにいたとき、シリコンバレー日記と言うものを書いていてWebで公開していた。今そのサイトはないのであるが、インターネットのWebアーカイブにその内容が残っている。先日「プロセスプログラミングの実践方法」というエントリでデバッグの話を書いたので、それつながりということで、当時、記した日記を全文転載し、ちょっと長くなるが後書き的な解説を加えたい。文体が微妙に違うがご愛嬌と言うことでご勘弁願いたい。 転載始まりデバッグ 誰もが使っている言葉なんだけど,実のところよく分からない言葉というのがある.少なくとも,なんとなくの定義はあるのだけど厳密な全員が納得できるような定義があるようでない言葉というのがある. デバッグというのも実はわかったようでいてよく分からない.とりあえづ,デバッグというのはプログラムのバグを直す作業だとしよう.そうするとプログラムのバグとは何か?と

  • ユメのチカラ: gdbの実践的使い方

    「大規模ソフトウェアの効率的な理解(その1、2、3、4、5、6)」などという大袈裟なタイトルでブログを書いたが、今回は一気に実践編ということでフリーソフトウェア定番のデバッガ gdb の実践的使い方について記す。 プログラマの日々には、プログラムを書くためのエディタ、プログラムをコンパイル(あるいは実行)するためのコンパイラ(あるいはインタプリタ)、そしてプログラムを理解するためのデバッガという三種の神器が必須である。 この定番はわたしの場合xemacs/gcc/gdbである。前々職(DECという会社に務めていた)の場合、それぞれプロプライアトリな物を使っていたので微妙に異なるがやることは一緒である。 gdbは何のために利用するかというと、プログラムを理解するために利用する。デバッガなんだからデバッグのために利用するというのは、gdbの底力の半分も利用していないと言ってさしつかえない。 g

    kanbayashi
    kanbayashi 2007/09/03
    gdbは何のために利用するかというと、プログラムを理解するために利用する。デバッガなんだからデバッグのために利用するというのは、gdbの底力の半分も利用していないと言ってさしつかえない。
  • 1