昨年行われたセキュリティ&プログラミングキャンプ2011で中学生〜大学生を対象として行った講義「テストとデバッグ」の発表資料を公開します。 テストとデバッグ View more presentations from nishio
昨年行われたセキュリティ&プログラミングキャンプ2011で中学生〜大学生を対象として行った講義「テストとデバッグ」の発表資料を公開します。 テストとデバッグ View more presentations from nishio
条件付きコンパイル プリプロセッサディレクティブは、プログラムの一部を条件によって選択してコンパイルする命令があります 条件付きコンパイルによって、柔軟なコンパイルが可能になります 条件付きコンパイルは、ifステートメント同様に 指定された定数式が真であれば、指定範囲をコンパイルします #if 定数式 文 #endif #ifディレクティブは、#endif までの文の並びをコンパイルします ただし、この作業はコンパイルより前にされるため、定数は定数以上の意味を持ちません つまり変数は指定できないということです 定数式の真偽は、ソースコードに直接記述することになります このコードによって、コンパイル処理の流れを変え、デバッグなどに利用することができます #include <stdio.h> #define DEBUG 1 int main() { #if DEBUG printf("Back
「わたしがprintf()デバッグをしない理由」http://d.hatena.ne.jp/hyoshiok/20090322#p1 は思いのほか注目をあびた。せっかくなので、その続編とも言うべきことを書き記してみる。 ところで、皆さんは、誰にデバッグ方法を教えてもらったのだろうか?テストの方法を誰に教えてもらったのだろうか。あるいは、ソフトウェア開発方法論を誰に教えてもらったのだろうか。学校でならったのは、プログラミング言語の文法であり、アルゴリズムであり、コンピュータアーキテクチャであった。デバッグ方法は誰も教えてくれなかったので、見よう見まねで行っていたのが学生時代だったような気がする。 バイト先のちっちゃいソフトハウスでは、トラブルシューティングは二分検索でやるということを教えてもらったが、デバッグ方法についての、コーチはなかった。別のバイト先では、厳密なテスト方法について学んだが
Win32のデバッグ Win32アプリケーションでは、デバッグ情報をコンソールに出力するようなこともできません。手軽なMessageBox関数を使う方法と、デバッグをサポートするAPIについて解説していきます。 MessageBoxを使う MessageBox関数は簡単なデバッグには便利です。例えば MessageBox( NULL, "呼ばれたよ", "title", MB_OK); とすれば、次のようなダイアログが表示されます。 メッセージボックスの例 MessageBoxで現れるダイアログはモーダルなので、ダイアログを閉じるまで制御は帰ってきません。例えば、アプリケーションが異常終了してしまう場合は、原因となりそうな周辺に1行づつMessageBox関数を挿入すれば、どこで異常終了が発生しているかを判断できます。 ただし、MessageBoxには、printf関数のように変数の値を表
でかいソフトウェアの、大量のソースコードを短時間で読む必要が生じたので、その補助ツールとしてptrace(2)ベースのLinux用関数トレーサを自作しました。こういうツール上でまずソフトウェアを実行してみて、どのファイルのどの関数がどういう順で呼ばれるか把握おけば、いきなりソースコードの山と格闘を始めるより楽かなーと思いまして。せっかく作ったので公開します。 http://binary.nahi.to/hogetrace/ straceはシステムコールだけ、ltraceは共有ライブラリ(DSO)の関数呼び出しだけ*1をトレースしますが、このツールは、実行バイナリ中の自作関数の呼び出しもトレースします。例えば再帰で1から10まで足し算するソースコードを用意して % cat recursion.c #include <stdio.h> int sum(int n) { return n ==
xxgdbデバッガによるデバッグ法 デバッグ・デバッガ デバッグ(debug, 虫取り)とは,作成したプログラムの間違いを発見して直す作業のことであり,デバッガ(debugger)とは異常動作するプログラムの動作を追跡し誤りを見つけ出すためのツールである. プログラムが期待した動作をしているか検証したり,うまく動作しない原因を追及するために用いる.通常の場合,デバッグはプログラム中の要所にfprintf(stderr,"・・・",・・・)関数を埋め込んで実行中の変数の値を画面表示して行うのが一般的だが,それだけでは不十分な場合もある. デバッガは,プログラムが異常終了した位置を調べたり,プログラムの実行を順番に追跡して変数の値などを確認しながら実行させることができる. Linuxで利用できるデバッガの一つにgdbがある.これを画面上でマウス操作が使えるようにしてくれるgdbのフロントエンド
Daniel Barlow <daniel.barlow@linux.org>v1.17, 28 February 1996 中野武雄 <nakano@apm.seikei.ac.jp>v1.17j2, 29 January 1997 この文書では linux の下で GNU C コンパイラとコンパイルに必要なライブラ リを設定する方法について記しています。またこれらの環境を用いたプログラ ムのコンパイル、リンク、実行およびデバッグについても概要を述べます。こ の文書の内容の多くは Mitch D'Souza の GCC-FAQ から得たものであり、この 文書は GCC-FAQ の代わりとなるものです。また ELF-HOWTO からも多くの題材 を採用しており、同じくこの文書は ELF-HOWTO の大部分を置きかえるもので す [訳注:Daniel さんは ELF-HOWTO の著者でも
2009年04月22日00:00 カテゴリ書評/画評/品評Lightweight Languages Linux i386 限定、最上級者向け - 書評 - DEBUG HACKS オライリー矢野様より献本御礼。 DEBUG HACKS 吉岡弘隆 / 大和一洋 / 大岩尚宏 / 安部東洋 / 吉田俊輔 この本が、あなたの仕事に直接役に立つかと言えば、あなたが Linux Kernel Hacker でない限り、役に立たない。「役に立つ」視点から見た場合の本書の想定読者の範囲は、恐ろしいほど狭い。間違っても、「メールアドレスにマッチする正規表現のバグ」を見つけるのに本書を役立てようとしてはならない。 しかし、狭いだけに、深い。そしてその深さを覗き見ることは、本書が全く役に立たない読者にも大いに意味があることだと考える。イチローのように打てなくても、羽生のように指せなくても、彼らが何を目指し、
の4つがあります。kernel配下にはカーネル全般にかかわるパラメータ、fs配下にはファイルシステム関連のパラメータ、vm配下には仮想記憶関連のパラメータ、net配下にはネットワーク関連のパラメータが置かれています。 /proc/sys/kernelディレクトリ まずはkernel配下のパラメータを見ていきましょう。/proc/sys/kernel配下のパラメータを使うと、パフォーマンス・チューニング以外のさまざまな設定も可能です。 ctrl-alt-del、cad_pid ctrl-alt-delは、おなじみの[Ctrl]+[Alt]+[Del]キーシーケンスの有効(1)/無効(0)を設定するファイルです。同時に、cad_pidには[Ctrl]+[Alt]+[Del]キーを押した際にシグナルを送信するプロセスを指定します(注)。 domainname、hostname これらのファイルに
/procによるLinuxチューニング [前編] ~ /procで理解するOSの状態 ~ Linuxの状態確認や挙動の変更で重要な役割を担うのが/procファイルシステムである。前編では/procの概念や/procを利用したOSの状態確認方法を理解していただきたい。(編集局) 遠田 耕平 2002/12/10 本稿では、/procファイルシステムによるカーネルチューニングを紹介します。カーネル2.4.19をベースに説明していきますが、カーネルのバージョンによって内容が異なる場合があります。また、ディストリビュータが独自の拡張を施しているものもあります。従って、これから説明する内容がすべて当てはまるとは限りません(端的にいうと説明の対象が存在しなかったり、説明されていない機能が追加されていることがあります)。 /procファイルシステムとは /procは、Linuxシステムの/(ルート)に「
Interface誌の好評連載「標準的デバッガGDBのすべて」を中心に,GDB関連情報をまとめた書籍です.本書ではFree Software Foundationから配布されている,フリーなデバッガGDBを使ったデバッグ手法を解説します.GDBは現存するほとんどすべてのCPUに対応し,数多くのOS上で動作させることができます.そのため,組み込みソフトウェア開発ではデバッガとしてGDBが標準的に使われています.デスクトップ・パソコン向けソフトウェア開発者から組み込みソフトウェア開発者まで,幅広く活用することができます.本書ではGDB本体だけでなく,GDBと連携して活用するツールとして,Emacs,Eclipse,Cygwin,Insightも取り上げます. 目次 第1部 GDBの基本的な使い方 第1章 GDBの簡単な使い方 1 GDBの操作 2 GDBのコマンド 第2章 GDBのセットアップ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く