タグ

2008年7月2日のブックマーク (11件)

  • 2.5. GHCiデバッガ

    GHCiは単純な命令的スタイルのデバッガを搭載していて、実行中の計算を停めて変数の値を確かめることができる。このデバッガはGHCiに統合されており、デフォルトで有効になっている。デバッグ機能を使うのにフラグは必要ない。一つ、重要な制限があって、ブレークポイントとステップ実行は解釈実行されているモジュールでしか使えない。コンパイル済みコードはデバッガからは見えない[5]。 このデバッガは以下のものを提供する。 プログラム中の関数定義や式にブレークポイントを設定する能力。その関数が呼ばれたとき、あるいはその式が評価されたとき、GHCiは実行を中断してプロンプトに戻る。そこで、実行を続ける前に、局所変数の値を調べることができる。 ステップ実行ができる。評価器は、簡約をだいたい一回行うごとに実行を一時停止し、局所変数を調べることができるようにする。これはプログラムのあらゆる地点にブレークポイントを

  • ocamldebugの調査 - ものぐさ備忘録

    ML言語の一種であるOcamlに付属している、ocamldebugというデバッガについて調べたのでメモ。 かなり間違っている可能性があるので、注意。 gdbライクなCUI break,info,helpコマンド等、gdbを知っている人なら何となく使えるようにコマンド名がつけられてます でも、printコマンドで関数呼び出しや代入が行えないなど*1、gdbと違う点もあるので注意 breakで停止できるのは、eventと呼ばれる箇所でのみ OcamlマニュアルのEventsの項目にeventとなる箇所が書いてある debuggerとdebugeeは別プロセス Unixだと、BSDソケットを使ってプロセス間通信することでdebugee上に存在する変数の値の参照等を行っている。ここらへんは、Javaデバッガの実装に近い 日語の処理関係は、まだ弱いらしい http://www.h2.dion.ne

    ocamldebugの調査 - ものぐさ備忘録
  • A declarative debugger for Haskell 98

  • jhc

    Jhc Haskell Compiler How to install The Manual jhc is a haskell compiler which aims to produce the most efficient programs possible via whole program analysis and other optimizations. Using Jhc See the Installation Page for information about downloading and installing jhc. For information on running jhc, see The User's Manual. Join the jhc mailing list for jhc discussion, announcements, and bug re

  • 仕様に基づいたテストスイーツを書く - Inemuri nezumi diary(2007-08-22)

    _ 独りで始める Concrete and Specific Programming(CSP) エクストリーム・プログラミング(XPとして知られている)は、ビジネス側と開発側の両者が共通の達成可能なゴールに集中するための、ビジネス及びソフトウェア開発の規律である。 Kent Beck [XPエクストリームプログラミング実行計画(The XP Series), Kent Beck and Martin Fowler, Foreword by Tom DeMarco 序言より引用] このエントリでは、開発側の夢を実現するためのプログラミング技術 Concrete and Specific Programming を提唱します。 趣味としてのプログラミングは、ビジネスとは無関係です。それは、人生に与えられた有限の時間の使い道として、あなたが選んだ選択肢です。なぜ、プログラミングを趣味とするのか、

  • Inemuri nezumi diary(2006-09-06)

    _ RushCheck - a lightweight random testing tool for Ruby Ruby のランダムテストライブラリ RushCheck を公開している。これは3年前からつくり出したもので、PC で眠っていたものを今年の夏休みに公開したものである。Haskell の QuickCheck を Ruby でも使いたいなあと思ったのがきっかけであった。 ランダムテストというのはテスト手法のひとつである。テストケースに入力するデータをテストインスタンスと言うことにしよう。このとき、テストインスタンスを自動生成するというのがランダムテストの特徴である。たとえば文字列を入力とするテストならば、ランダムテストではその入力文字列をランダムに生成する。いくつもの異なった入力をランダムに生成して、同じテストケースを自動的に何度も実行するというテストの考え方である。 _ ラン

  • Blog - RushCheck

    Blog Development for RushCheck 0.8 is delayed (2006-12-04) Why does the development of Rushcheck seem to be delayed? There are several reasons that I may have to say. The main reason is that I’m now concentrate upon writing a paper whose deadline is Jan 8, 2007, which is not related to RushCheck, but my favorite mathematics. On the other hand, another reasons are related to RushCheck. I’ve two

  • Haskell の "printf" デバグ - Inemuri nezumi diary(2007-05-11)

    _ Haskell の "printf" デバグ StateモナドとかIORefとか使うプログラムだと、実行時中に中身を覗きたくなる。ある人が unsafePerformIO で print するとか言うので、それはちょっと待てと。Haskell がその手のデバグがしにくいので、他の言語に移るというのは、ちょっとだけ待ってほしい。 Haskell には Debug.Trace というモジュールがあって、その中の trace :: String -> a -> a は、IO を気にせずに文字列を標準エラー出力に出せるのですよ。 import "Debug.Trace" main = trace "Good morning" $ print "Hello, world" zsh% runghc TracingHello.hs 1> out.txt 2> err.txt zsh% cat out

  • Trace

    Debug.Trace を使う nobsun(2007/07/04 10:53:31 JST) Haskellでもprintfデバッグのようなことをしたいことがある.このとき Debug.Trace モジュールにある trace という関数が便利である. trace :: String -> a -> a この関数は値としては第二引数をそのまま返す関数なのだが,その値が評価さ れたときにコンソールに第一引数で与えた文字列を表示するというののである. たとえば, add :: Int -> Int -> Int add x y = trace "'add' called" (x + y) と定義して add 1 (2*3) を評価すると *Main> 1 + add 2 (3*4) 'add' called 15 となる. ジョイントにながれるデータを見る Haskellのプログラミングでは

  • よく使うコマンド

    ここでは基的なコマンドのうち、使用頻度が高いものを紹介する。 コマンドの書式(引数とか)を全てを網羅しているわけではない。 もっと詳細な情報が欲しくなったらGDBのマニュアルを見てみよう。 もしくはGDBプロンプト上で"help [コマンド名]"と入力してみてもいい。各コマンドに関する ヘルプが(英語ではあるが)表示される。 プログラムの実行、停止、継続 run args 前のセクションでも紹介したが、プログラムを実行するコマンドである。runにはプログラムに 与える引数argsを指定することができる。例えば、プログラムの引数にhoge, fugaを指定したければ 次のようにする。 (gdb) run hoge fuga ちなみにリダイレクトも利用できる。GDBを実行する仮想コンソールと、もう1つ仮想コンソールを用意 すれば、リダイレクトを用いてGDBの出力とプログラムの出力を分けること

  • 変電工 - Google C++スタイルガイド日本語訳