タグ

debugに関するnamikisterのブックマーク (7)

  • emacs-init-check.el 〜Emacsが立ち上がるときのエラーを自動的に防ぐ方法〜 - http://rubikitch.com/に移転しました

    .emacs で設定ミスって素の emacs が立ち上がったときの無力感は異常 というのは激しく同意です。 僕の場合、少し違ったアプローチをとっています。 それは、Emacsのバッチモードで ~/.emacs を読み込ませ、エラーがでないかチェックすることです。 そのためのコマンドラインは「emacs -batch --eval '(setq debug-on-error t)' -l ~/.emacs」となります。 ちなみに、 ~/.emacs.el が存在するときは、そちらが読み込まれます。 もし、エラーが起きたのであれば、バックトレースが出て異常終了します。 適切なタイミングでこのチェックを自動で行うようにすると、この問題を解決できます。 これを実現するために、emacs-init-check.elを作りました。 チェックしてエラーがでない場合は「emacs-init-check e

    emacs-init-check.el 〜Emacsが立ち上がるときのエラーを自動的に防ぐ方法〜 - http://rubikitch.com/に移転しました
  • Gauche(Scheme) でデバッグをする4つの方法 - higepon blog

    Gauche でコードを書いているときにコードが意図どおりに動かないことがあります。そのような場合にデバッグする方法を4つ紹介します。 前提 まず Gauche はリリースされている最新版を使った方が良いでしょう。Linuxのディストリビューションによってはパッケージが古い場合あります。 またScheme は関数型言語なので、デバッグの単位は関数(手続き)ごとに行うことが多いです。一つ一つの手続きが意図どおり動いているのか?を調べながら進めるのが基になります。 方法1 print デバッグ Gauche には今のところデバッガがありませんから基的には print デバッグがメインとなります。単純な print デバッグから見ていきましょう。 以下のような sum という手続きで print デバッグしてみましょう。 (define (sum n) (if (= n 1) 1 (+ n

    Gauche(Scheme) でデバッグをする4つの方法 - higepon blog
  • 第8回 ソースコードを追いかける | gihyo.jp

    最近のソフトウェアはconfigureスクリプトなどのおかげで、よほどのことが無い限りコンパイルエラーは発生しなくなり、「なぜコンパイルエラーが出るのか」「⁠どう修正すればコンパイルが通るのか」をソースコードレベルで調べる機会はほとんど無くなりました。 もちろん「コンパイルすらできないソースコードを公開した」というのは(スナップショット版ではいざ知らず)開発者にとっては最大級の恥辱なので、不完全なソフトウェアの公開を勧めるつもりは毛頭もありませんが、自らの経験を振り返ると、「⁠コンパイルするためにソースコードを調べて修正する」というのは、ソースコードを読むいい勉強になったように思います。 今回とりあげるのは、最近では珍しい「configureスクリプトは通ったのにコンパイルできなかったソフトウェア」の例で、実際にそのような状況になった際、何をどのように調べて原因や対策を考えたかの実例を紹介

    第8回 ソースコードを追いかける | gihyo.jp
  • ユメのチカラ: gdb/xemacs/cscopeの使い方

    プログラムの状態は変数の値の変化によって変化していくわけだが、変数は、宣言され、値を代入され、参照されるなどして利用される。 ポインタによって字面では変数が登場しなくても参照、変更される事もあるので油断禁物である。 またグローバル変数が嫌われるのは、ソースコードを局所的に調べていてもその代入、参照の範囲がつかめないからである。別のディレクトリに格納されている見た事も聞いた事もないファイルで変更されていて、当該ディレクトリをgrepしただけでは発見できなかったりする。 ローカルな変数ならばソースコードを静的に読解していけば、宣言、代入、参照それぞれが局所化しているので簡単に理解できる。 変更の影響もローカル変数ならば局所化されているがグローバル変数だとどこに影響が発生するかよくわからないのである。 さてブレークポイントを設定し、そこで実行が停止したとする。最初の仕事はその関数がどこから呼ばれ

  • hogetrace - 関数コールトレーサ - memologue

    でかいソフトウェアの、大量のソースコードを短時間で読む必要が生じたので、その補助ツールとして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 ==

    hogetrace - 関数コールトレーサ - memologue
  • perl - B::Deparse : 404 Blog Not Found

    2007年02月11日13:45 カテゴリLightweight Languages perl - B::Deparse 尻馬乗るべし、ということでB::Deparseの紹介。 いやなブログ - スクリプト言語用のデバッガの使い方 - Ruby, Python, Perl スクリプト言語用の CUIのデバッガの使い方を簡単にまとめました。対象言語は Ruby, Python, Perl です。実は私も、デバッガーはperl -de1ぐらいしか使っていない(perl -de1は非常によく使うので、Terminal.appのウィンドウの一つがそれ専用になっている。スクリプト言語のインタラクティブな利用法に関しては以前「404 Blog Not Found:LL Intaractive」にまとめたのでそちらをご覧頂くとして、ここではなぜスクリプト言語では滅多にデバッガーを使わないかをおさらいした

    perl - B::Deparse : 404 Blog Not Found
  • sixnine.net

    sixnine.net 2024 著作権. 不許複製 プライバシーポリシー

  • 1