タグ

traceに関するkanbayashiのブックマーク (7)

  • Haskellでもデバッグプリントしたい + Sコンビネータの練習 - 趣味的にっき

    いきなりですが、やっぱりHaskellでもデバッグプリントしたいですよね。調べた結果、Debug.Traceにある関数traceを使えばできることがわかりました。おお、副作用が… 実装はきっと暗黒面なんだろうな(キレイな身体じゃ生きられない、みたいな)。 そのまま使ってもいいんですが、せっかくなんでRubyっぽく関数pを定義してみました。 ファイル: a.hs module Main (main) where import Debug.Trace (trace) p :: (Show a) => a -> a p = p' "" p' :: (Show a) => String -> a -> a p' s a = trace (s ++ show a) a inc :: Int -> Int inc i = i + 1 main :: IO () main = print $ p $ i

    Haskellでもデバッグプリントしたい + Sコンビネータの練習 - 趣味的にっき
  • Branch Tracer for Linux

    btraxとは btraxの機能概要 スクリーンショット 適用例 リンク このプログラムの一部は、「独立行政法人 情報処理推進機構 オープンソースソフトウェア活用基盤整備事業」に係る委託業務の一環として開発しました。 btraxとはbtrax(Branch Tracer for Linux) は、Pentium4, Xeon, Pentium-M CPU のデバッグ機能である最新分岐記録機構を利用した、分岐命令トレーサです。カーネルに変更を加えることなく、カーネル/ドライバおよびアプリケーション/ライブラリの分岐命令実行状況を取得でき、そのログ情報を元に分岐カバレージ情報と実行経路を表示することができます。 btraxプログラムbtraxは、次の2つの機能から構成されます。 分岐命令実行ログ取得機能 ログ解析機能 分岐命令実行ログ取得機能には、分岐命令トレース用の体ドライバとは別に、下記

  • C(++)言語: valgrindの使い方

    ubuntu% uname -a Linux ubuntu 2.6.12-10-386 #1 Sat Mar 11 16:13:17 UTC 2006 i686 GNU/Linux ubuntu% valgrind --version valgrind-3.0.1 (0) 目次 Valgrindに含まれるツール Memcheck: メモリエラーを検出する(default) Cachegrind: キャッシュミスを検出する Massif: ヒーププロファイラを使う まとめ valgrindの使い方とエラーメッセージを整理してみた。「valgrind --leak-check=full command」というコマンドラインをよく用いる。これによりメモリ周りのバグを検出出来る。 --tool=cachegrindではプログラム実行時のキャッシュミス率を測定する事が出来る。cg_annotateを

  • 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
    kanbayashi
    kanbayashi 2008/04/26
    hogetraceのページを過去にブクマしていた。絶望した。
  • Windowsでアプリケーションのシステムコールの呼び出しを監視・ロギングするようなアプリケーションはないでしょうか。…

    Windowsでアプリケーションのシステムコールの呼び出しを監視・ロギングするようなアプリケーションはないでしょうか。 あるいはそのようなAPIは提供されてないでしょうか。

  • もわの台所: systemtap @ debian

    ユーザ空間からカーネル空間にプローブ関数を差し込めることが出来れば便利である。 systemtap を用いることでそれを行なうことが出来る。 debianでのインストール方法は SystemtapOnDebian で理解できる。 基的に必要なのは systemtap パッケージのインストール Kernel の再構築 kernel-img.conf の変更 だけだ。 Fedora や RedHat に対するインストール方法は こちら にある systemtap の紹介スライドに書いてある。 利用方法も上記のスライドに書いてある。 サンプルとなるスクリプトは こちら から入手が可能だ。 例えば top.stp を実行した結果は以下のようになる。 root# stap top.stp SYSCALL COUNT sys_gettimeofday 317 sys_select 70 sys_

  • tracef - function call tracer

    このページは書きかけです。 hogetraceという名前はあんまりなので自重してtracefに変更しました。 TOC 概要 実行例 動作環境 (OS) ダウンロード ビルド環境 ビルド手順 解析可能なプログラム スクリーンショット forkするプログラムの解析 execするプログラムの解析 再帰 マルチスレッド みんなだいすき例外スロー mainの前に呼ばれる関数 制限事項 コマンドラインオプション 仕組み (つぶやき) 類似ツール 概要 hogetrace tracefは、Linux向けの「関数コールトレーサ」です。 自作関数の先頭と末尾にも0xCCを仕掛けるようにしたptraceベースのltraceもどきです。おわり。 ディストリビューションに標準で含まれているltraceコマンドに似ていますが、次のような特徴・相違点があります。 DSO(DLL)内のライブラリ関数の呼び出しだけでなく

  • 1