タグ

vsとdebugに関するnitoyonのブックマーク (7)

  • VC++6.0 デバッグの小技

    システムのAPI呼び出しにブレークポイントを設定することが出来ます。 APIがどのDLLにあるかを探す grep CreateFile lib\win32api.csv 正確な名前を探す dumpbin -exports name.dll | grep CreateFile "Load COFF & Exports"オプションを指定する ブレークポイントを、次のように設定する {,,dllname}CreateFile 詳細なアドレスの指定は、 {[関数名], [ソースコード名], [モジュール名} expression となる。 データに対してブレークポイントを設定することが出来ます。 例えば、アドレス0x12345678に変更がなされたときにブレークするには、 *(long*)0x12345678, length=1 と設定します。この方法では、CPUのデバッグレジスタを使うので、実行

    nitoyon
    nitoyon 2008/03/13
    たぶん「Windowsプログラマのためのデバッグテクニック徹底解説」のメモ
  • IEでのJavaScriptのデバッグ方法 - Microsoft Script Editor編 - - 日向夏特殊応援部隊

    IEでJSのエラーになったときに立ち上がるデバッガって大体の人が使いこなせてないのではないでしょうか? ちなみに僕もそうだったのですが、ふと思い立って調べてみました。 追記 (2008-01-10T14:24:30+09:00) はてブのコメントで、 MS Office持ってない人はVisual Web Developer(VWD)で。/ちょっと前にこんなの書いたので、VWD 2008使う人は参考にしてもらえると幸い。 http://d.hatena.ne.jp/terurou/20071218/119796573 とありました。 これはid:kaorunさんにも聞いていたので後で試そう〜と思ってたので助かります。 合わせてご覧になって下さい。 Microsoft Script Editorとは? のようにOffice付属のツールだったりします。僕の環境では、 C:\Program Fil

    IEでのJavaScriptのデバッグ方法 - Microsoft Script Editor編 - - 日向夏特殊応援部隊
    nitoyon
    nitoyon 2008/01/09
    Script Editor でのデバッグ方法。
  • メモリリーク検出 - へたっぴ日記

    VC++では_Crt〜関数でメモリリークを容易に検出できるが、使い方を間違えてありもしないメモリリークで悩んでいる人がいた。コードはこんな感じ。 //foo.cpp #define _CRTDBG_MAP_ALLOC #include <stdlib.h> #include <crtdbg.h> #define new ::new(_NORMAL_BLOCK, __FILE__, __LINE__) //てきとー class Foo { private: char* buf; public: Foo() { buf = new char[1]; } virtual ~Foo() { delete [] buf; } }; void main(void) { //ダンプ先を標準出力に設定 _CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE); _Cr

    メモリリーク検出 - へたっぴ日記
    nitoyon
    nitoyon 2007/11/12
    メモリリークの検出方法。new への対処。
  • 気まぐれソフトハウス ≫ メモリリークの検出

    MFCを使っていると、デバッグの終了時にメモリリークしているブロックを表示してくれます。しかしSDKやWTLだった場合、ちょっとした手続きを経ないとこれを表示してくれません。 次の定数を定義し、ヘッダをインクルードする #define _CRTDBG_MAP_ALL...

    nitoyon
    nitoyon 2007/11/12
    _CRTDBG_MAP_ALLOCと_CrtSetDbgFlagでメモリリーク情報をコンソールに出力させる。
  • DSAS開発者の部屋:Win32 プログラムのデバッグTips (1)

    ■ はじめに ひとつのプログラムを完成させるまでには、多くの場合「デバッグ」という作業が必要です。 まったくバグのないプログラムを一気に書き上げるのは難しいことですから、 プログラミングの際には実行時のエラーを見つけやすくするための工夫が必要ですし、 実際にエラーが発生した場合にはできるだけ手際よく対処したいものです。 デバッグを行う上での最初の目標である「原因の特定」を効率的に行うための ツールや流儀はプラットフォームや使用言語により一様ではありませんが、 ここではネイティブな Windows プログラムをデバッグする上で役に立つ小技をいくつかとり上げてみたいと思います。 今回は、自作のプログラムの実行中にプロセスが異常終了する状況において、 問題箇所を手早く探すための方法のひとつをご紹介します。 記事では Microsoft Visual C++ を開発環境と想定しています。 どうやら

    DSAS開発者の部屋:Win32 プログラムのデバッグTips (1)
    nitoyon
    nitoyon 2007/10/30
    クラッシュダンプとpdbからクラッシュ時の状況を知るための方法。
  • IEの気持ち(深入り編) - 最速チュパカブラ研究会

    昨日の続きです。昨日の記事がまったくデタラメだとさすがに気まずいので、Invoke が呼ばれてるよ、という事実ぐらいは確かめようと思いました。私はバイナリアンではないのですが、がんばってMSHTMLの中を追ってみることにします。 まず、C++からIDispatch::Invokeを呼んだ場合と、Javascriptから window.document を参照した場合の2つの処理が合流するところを探しました。 ↑ここです。 スタックの中を覗くと、引数が見えます。 window.document の dispid(呼び出したいメソッドのID)である0x47fが確認できます。 では、ここにブレークポイントを仕掛け、amachangのハックをしない状態で、以下のコードを実行してみます。 alert(document); するとブレークポイントがヒットします。 dispid は 0x47f なので、

    IEの気持ち(深入り編) - 最速チュパカブラ研究会
    nitoyon
    nitoyon 2007/10/14
    mshtml.dll にブレークポイントを仕掛けて、IEの気持ちに深入りしていく。 スタックに DISPID が出る。なるほど。/DISPID というのは IHTMLWindow2 のメソッドに割り当てられた番号。http://doc.ddart.net/msdn/header/include/mshtmdid.h.html
  • VMware Workstation 6 Beta

    nitoyon
    nitoyon 2007/04/27
    VisualStudio や Eclipse から直接 eploy, run, and debug できる! ちょ、これ、すごすぎじゃね。
  • 1