タグ

debugに関するimai78のブックマーク (24)

  • Eclipseのリモートデバッグ - kagamihogeの日記

    リモートデバッグとは、JavaVMプロセスとTCP/IP通信しながらデバッグを行う仕組みを利用したデバッグ手法を指します。 TCP/IP通信ですから、Eclipseが動作しているマシンとは別のマシンで動作しているJavaプロセスと通信してデバッグすることもできます。デバッグ対象は別OSでもいいですし、Eclipseが導入されている必要もありません。 より抜粋 俺は恥知らずなJava使いなので今までこの機能の存在知らなかった……ので、試す。書いてあることはEclipse wikiとほとんど同じことです。 こんな環境でやりました windows XP jdk 1.6.0_16 Eclipse 3.7 普通のJavaアプリケーション まずはEclipseでJavaプロジェクトを作って適当なクラスを作る。 public class Hello { public static void main(S

    Eclipseのリモートデバッグ - kagamihogeの日記
  • ローカルマシン以外で動いているjvmをEclipseでデバッグする | Webシステム開発/教育ソリューションのタイムインターメディア

    Javaの開発者でEclipseを利用されている方は多いと思います。 通常のEclipseをインストールするとJavaの開発用ツールが一式はいりますが、その中にJavaのデバッグツールも含まれます。 TomcatやJetty、WebLogicなどのWebアプリケーションサーバ上で動くWebシステムを開発する際、ローカルにWebアプリケーションサーバを入れその上で動かしながら開発を進めていくのが一般的だと思います。 EclipseではTomcatプラグインなどWebアプリケーションサーバ固有のプラグインでのデバッグ実行、もしくはEclipseに「サーバ」としてWebアプリケーションサーバを登録し、そこからデバッグ起動することでEclipseからデバッグをすることができます。では、手元のマシン(ローカル)以外で動いているアプリケーション(Webアプリはもちろんバッチなど)はどのようにしてデバッ

    ローカルマシン以外で動いているjvmをEclipseでデバッグする | Webシステム開発/教育ソリューションのタイムインターメディア
  • Javaでデバッガがブレークポイントで止まらない - Yamashiro0217の日記

    Javaでデバッガがブレークポイントで止まらない」現象に僕の周りでハマってる人が割といました。まぁ、Eclipse以外でもそうだと思うのですが、とりあえずEclipse環境で。 で、twitterなどで教えてもらったのですが、 sun の jdk の 1.6.0_14 〜 15 で デバッグの問題 Java ™ Virtual Machine Tool Interface (JVM TI) のブレークポイントは、並列スカベンジガベージコレクタ (-XX:+UseParallelGC) または並列圧縮ガベージコレクタ (-XX:+UseParallelOldGC) が使用されている場合のみ信頼できます。 というリリースノートが。 http://java.sun.com/javase/ja/6/webnotes/6u15.html というわけで、デバッガ起動時にこのオプションを付けてあげれば

    Javaでデバッガがブレークポイントで止まらない - Yamashiro0217の日記
    imai78
    imai78 2011/02/09
    存外助かる。
  • Eclipseデバッガ徹底解説 - Yamashiro0217の日記

    Java Advent Calendar -ja 2010 : ATND 11日目。昨日は、id:daisuke-m でした。 完全に Eclipse のこと書けとふられてる感じがしたので Eclipse について書く。 Eclipse の何について書こうかと考えたんだけど、先日、社会人になってからプログラム書き始めた弊社の若い子が、「デバッガ」の存在を知らなかったのでデバッガの基的な使い方などについて書く。 PHPというちょっとしたWebページをさらっと書くには素晴らしい言語だけしか知らないみたいだから、あんまりデバッガ使う文化が無かった模様です。 var_dumpデバッグェ…。 今回は初心者向け記事なので、基Java使い倒してる皆様は読まなくてよろしいが、Break Point Properties の Condition とかDrop To FrameとかExpressionの機

    Eclipseデバッガ徹底解説 - Yamashiro0217の日記
  • EclipseによるJavaアプリケーションのデバッグ

    再開(F8) 次のブレークポイントまでプログラムを実行します。図Aの状態から"再開"を実行すると、以下のように次のブレークポイントまでプログラムが実行されます。 ステップイン(F5) 次の1行を実行します。次の1行にメソッド呼び出しが含まれている場合は、そのメソッド内部に入った状態でプログラムが中断します。図Aの状態から"ステップイン"を実行すると、以下のようにcalcurateメソッドの先頭で停止します。 図B. ステップイン実行後 ステップオーバー(F6) 次の1行を実行します。次の1行にメソッド呼び出しが含まれている場合でも、そのメソッド呼び出しを終えた状態でプログラムが中断します。図Aの状態から"ステップオーバー"を実行すると、calcurateメソッドの呼び出しを実行し、次の行で停止します。 ステップリターン(F7) 今実行中のメソッドの実行を終えて、呼び出し元へ戻ります。図B

    imai78
    imai78 2010/10/06
    「条件付きブレークポイント」は知らなかった!
  • PHP Xdebug のProfile の手軽な共有ツールを作ったよ

    お疲れ様です。sasaki-kです。毎日暑いですね。 KLabではPHPで作られたフレームワークの高速化が熱いです。 高速化にあたっては、計測が重要です。 KLabではphpのxdebug extensionを使用し、プロファイル結果をcachegrindファイル形式で取得しWinCacheGrind で解析しています。 また皆でレビューするために Webgrind で解析結果を共有したり、言葉で説明しています。しかし、 Webgrindは一見してボトルネックが分かりにくかったり、言葉では説明がもどかしかったりしていました。 一方、KLabではCodepaste の社内版があり、 フォーマット済みのコードをフォームに貼りつけ、ブラウザのアドレスバーからURLをコピーしてIRC貼りつけてレビュー対象のコードを手軽に共有しています。 WinCacheGrind WebGrind codepa

  • さらに分かっておきたいトランジスタの種類 − @IT MONOist

    組み込みソフトウェア/ハードウェア開発における技術力の向上、改善・最適化などを幅広く支援する“組み込み開発エキスパート”のための情報フォーラム

  • ユニットテストの無かった頃 - みねこあ

    今のプロジェクトは納期的に少々無茶です。次のリリースはα版という位置づけなので多少のバグバグーっも構わないというのもあってか、先日「ユニットテストをきっちり書くと時間がかかるから、ある程度そこらへん端折ってね」と言われました。 確かにユニットテストを作ると作らないでは、実装工程の工数が倍くらい違ってしまうものですが、そこは急がば回れといいますか。ユニットテストを作っておくとデバッグでほとんど苦労しないでスルスルっといけるし、修正でバグを出した瞬間にバグの存在に気がつくので「どれどれ?」と見るコードの量も大変少なくて楽ちんですし、かえって早く出来上がるのは間違いないところです。ユニットテストは品質の話だけでなくって、わたしにとってはすっかり開発効率の話なんですよね..。 さて、そんなこんなでユニットテストにすっかり馴染んでしまったわたしは、もうユニットテストを作らない開発がすっかり出来ない体

    ユニットテストの無かった頃 - みねこあ
  • FirePHPでPHPプログラミングを便利にする方法 | エンタープライズ | マイコミジャーナル

    FirePHP enables you to log to your Firebug Console using a simple PHP method call. WebサイトやWebアプリケーションを開発する言語としてPHPは人気がある。世界最大規模のソーシャルネットワークサービスFacebookもサービスの開発にはPHPを採用している。提供するサービスが大規模になると一部をC/C++化して高速化をはかることもあるが、開発エンジニアの集めやすさやアジャイル性の良さもあって主要言語のひとつであり続けている。 HTML/CSS/JavaScriptをベースにWebサイトやWebアプリケーションを開発する場合、開発ツールとしてFirebugやブラウザベンダが提供しているデバッグツールが利用できるが、PHPのようにサーバサイドで動作するタイプの言語ではそう簡単にはいかない。しかしいくつか便利な

  • 川o・-・)<2nd life

    Perl での print debug の方法の紹介がブーム(?)だったので、自分がよく行ってる Ruby での debug 方法7つについて書いてみます。 p ご存じの人も多い Kernel#p メソッド。これを使うとオブジェクトの内容を見やすい形で出力してくれます。 >> p ({:foobar => :baz}) {:foobar=>:baz}Object#inspect を使うと、p で出力するときと同じ文字列を String として取得できます。 >> puts ({:foobar => :baz}).inspect {:foobar=>:baz}初心者の頃この p での出力を使う方法がわからなくて困った記憶が…。 pp pp というライブラリを使うと、p より、より見やすい形式で出力してくれます。たとえば >> a = Array.new(10) { {:foobar => :

    川o・-・)<2nd life
  • Javaバイトコードの読み方 - プログラマーの脳みそ

    Javaのデバッグをしていて、ステップ実行中にステップインを繰り返したらソースコードのないところに行き当たったことがあるだろう。あるいはEclipseでF3キーでクラスやメソッド・フィールドの宣言元を辿っていってソースコードのないところに行き当たったことがあるだろう。 Eclipseの場合、"Class File Editor"というものが開く。そこにはJavaのバイトコードのニーモニックがズラズラと並んでいて、「これは読めないや、ワケが分からない」と投げ出してしまったりしていないだろうか。 怖がることはない。ちょっとコツを掴めばすぐに読めるようになる。 Class File Editorの開き方 自前のJavaクラスの場合、ビルドして出来上がったclassファイルを開く必要がある。"Package Explorer"だとclassファイルは隠されていて見えないのでWindow -> Sh

    Javaバイトコードの読み方 - プログラマーの脳みそ
  • Debug Print Method (デバッグ出カメソッド) - Strategic Choice

    師曰くデバッグに役立つ情報を出力するためにtoString()を使用しなさい。どういうこと?ObjectのインターフェースであるtoString()は、オブジェクトの内容を文字列で表現する役割を担っています。オブジェクトを文字列で表現することには多くの理由がありえます。オブジェクトの内容をユーザーに見せたいのかもしれませんし、後で取り出せるように格納したいのかもしれませんし、あるいはオブジェクトの内部をプログラマに提示したいのかもしれません。これら複数の目的を一度に満たすことはできません。この中でも「プログラマのためのオブジェクト文字列表現」を作り出す用途でtoString()をオーバーライドします。他の目的で使用する文字列表現は、そのオブジェクトまたは別のクラス内で他のメソッドが返すようにします。どうして?高品質のデバッグ出力への投資にはレバレッジが存在します。デバッガでオブジェクトの内

  • FlexのログをFirebugで出力する - しかじろうがプログラム作るよ!

    しかだよ。 Flexのログはconsoleにしかでないから、番サーバーに配置したときにログが見れないから不便だよね。 ググったらFirebugにログを出力するクラスがありました。 Danny Patterson » Firebug Target for Flex Logging Framework <mx:Script> <![CDATA[ import mx.logging.ILogger; import mx.logging.Log; import mx.logging.LogEventLevel; import com.dannypatterson.logging.FirebugTarget; //パッケージ付きのファイル名 //どこでエラーが出たかわかりやすくなります。 private static var log:ILogger = Log.getLogger("jp.ne.h

    FlexのログをFirebugで出力する - しかじろうがプログラム作るよ!
  • JUnit/FindBugs/PMDなどを総観できるQALab/Limy

    便利なEclipseプラグイン集「Limy」とは 「Limy」というEclipseプラグインをご存じでしょうか。これは、コード支援機能やプロジェクトの品質管理機能、プロパティエディタやVelocityテンプレートエディタなどが含まれている便利なEclipseプラグイン集です。 今回は、Limy Eclipseプラグインに統合されているソフトウェアの品質レポートを生成する「QALab」の機能を利用したソフトウェア品質管理やLimy EclipseプラグインのQALab実行機能について紹介します。 ■さまざまな品質管理機能を一括実行/総観できる「QALab」 Javaで品質管理を行うツールとして、さまざまなツールが提供されていますが、それらを利用するには1つずつセットアップする必要があり面倒です。 ObjectLABにより開発されるQALabを利用すると、さまざまな品質管理ツールを一括して実行

    JUnit/FindBugs/PMDなどを総観できるQALab/Limy
  • DSAS開発者の部屋:Windows用フリーウェア「HookDate」を公開します

    ■ はじめに プログラム開発にテストはつきもので、テストの際に特定の年月日でプログラムの動作を確認しなければならないことがよくあります。その場合に手っ取り早いのは「コンピュータのシステム日付を変更する」という方法ですが、Windows ではバックグラウンドで多くのプログラムが動いており、システムへの影響を予測できないためできればその方法は避けたいものです。 そこで、API フックを利用して、特定のプログラムに対してシステム日付とは異なる日付を伝えるツール「HookDate」を作ってみました。 せっかくなのでこのブログの読者の方にフリーウェアとして公開することにします。 (追記)2010年06月16日:バージョン 1.0.2.0 を公開しました ■ 最新版の改訂内容 ver 1.0.2.0 (2010/06) 64ビット Windows 環境への対応 exe ファイルへのショートカットファイ

    DSAS開発者の部屋:Windows用フリーウェア「HookDate」を公開します
  • デバッグという基礎素養 - みねこあ

    経験の浅いプログラマーがデバッグにてこずってるのって、 これと似ていて、 むやみやたらにクリックするのだけど、 自分の知ってるパターンに収束させることができない、みたいな。 これについては、経験を積めば、 自分の知ってるパターンが増えてきて、 バグだ、と思ったときには既に自分の知ってるパターンだから直せる、とか、 ちょっと試行錯誤すればパターンに落とし込めるとか、 そうなるんじゃないかな、と。 経験の浅いプログラマーがデバッグできない理由 については、コンパイラの吐くエラーが実は直接的が原因を示していない、とか、そういうレベルの話では実感だな、って思います。 「そうそう、コンパイラがこんなこと言うときは実際にはあんな事が起きてるんですよ」みたいな知識データベース。そしてコンパイラが検出出来ないタイプのバグについても、現象に「あれ?、どこかでみたぞ、これ」となる。そういう「良くあるパターン」

    デバッグという基礎素養 - みねこあ
  • はてなブログ | 無料ブログを作成しよう

    祖母の白寿のお祝い 先日、満99歳(数えで100歳)になった祖母の白寿のお祝いをやった。 さすがに身体のあちこちに不具合が出てきており、そろそろ格的に外出も難しくなってきたので祖母と一緒に家族で集まれるのはたぶんこれが最後だろう。 下は0歳から上は99歳までいるので、移動と諸々…

    はてなブログ | 無料ブログを作成しよう
    imai78
    imai78 2009/04/06
    すげー、幽霊って本当にいたんだー(違
  • デバッグ方法論 - 設計と実装の狭間で。

    吉岡さんが釣り糸を垂れているので、釣られてみるよ。 デバッグ方法論 と言っても、多分、僕の気力が続くのは、こんなトピックがあるよ、って事までかな。 細かい話が気になるって人達は、スターとか、ブクマとかで催促すると、 書く気になるかもしれないし、どっかの宴会で、続き喋れって言われれば喋るかもしれない。 前提として、Javaで書かれたコードをデバッグすると考えてクダサシ。 ある程度実行環境やコードの種類に依存しないデバッグの方法論ってのもあるんだろうけど、 僕が気付かないウチに、Javaに強く依存したデバッグの方法論を抱え込んでるって事もあるだし。 まず、デバッグと言う作業が、どの様な構造を持っていると、僕が理解しているか、書いてみる。 バグの定義 静的デバッグ 動的デバッグ フォースを感じる この4つだに。 ちなみに、コードを修正する事は、デバッグでは無いものとするよ。 それぞれは、作業手順

    デバッグ方法論 - 設計と実装の狭間で。
    imai78
    imai78 2009/04/03
    おそるべし
  • ログは、もっと立体的であるべきか。 - 設計と実装の狭間で。

    slf4jとlogbackに、魂を売り渡す勢いであります。 と言うのは冗談としても、何だか使い方が分からないけど、 Loggerのメソッドには、引数として存在しているorg.slf4j.Markerについて、考えてみたり。 現段階では、slf4jとlogbackを使ってる大きめのOSSプロダクトにおいて、 どんな使われ方をしてるかちゃんと見てないので、妥当な使い方なのかは、微妙。 まぁ、僕なら、こんな風に使ってみるよ、と言う感じのエントリ。 slf4j使おうって人達が、使い方を考える時のとっかかりになればいいかな…とか。 まず、org.slf4j.Loggerの、Markerを引数に取るメソッドの宣言と、org.slf4j.Markerの宣言を抜粋してみるよ。 public interface Logger { public void debug(Marker marker, String

    ログは、もっと立体的であるべきか。 - 設計と実装の狭間で。
  • DjangoやPythonを使ったWebシステム開発のお供に·FirePython MOONGIFT

    Webシステム開発を行っているとデバッグメッセージを表示したいと思うことは多々ある。画面にメッセージを出しても良いだろうが、常々使うのであればログファイルなどを利用した方が効率的だ(デザインへの影響もあるので)。 FirebugとPythonをつないでくれる 開発者には見えてユーザには見えない(見ることもできる)、そんな素敵なメッセージプラグインがFirePythonだ。 今回紹介するオープンソース・ソフトウェアはFirePython、Firebugと連携するPythonデバッグライブラリだ。 FirePythonは二つのライブラリが提供される。一つはPython側で利用するライブラリで、もう一つはFirefoxアドオンとして動作するものだ。Python側でメッセージを送信し、それをFirebugが受け取って表示してくれるようになる。 設定画面 PHPでは同様のソフトウェアとしてFireP

    DjangoやPythonを使ったWebシステム開発のお供に·FirePython MOONGIFT