タグ

ブックマーク / www.keicode.com (8)

  • COM プログラミング入門 - Web/DB プログラミング徹底解説

    作ってわかる COM の基礎 簡単な COM コンポーネントの実装例を通して、COM コンポーネントに最低限必要な要素についてみていきます。 IUnknown とは? IUnknown インターフェイスはすべての COM コンポーネントに実装されます。これが何かみてみましょう。 COM オブジェクトの寿命管理 COM オブジェクトはいつメモリから解放されるかということを考えます。 COM コンポーネントの登録機能 COM コンポーネントは自分をシステムに登録させる機能をもたせることができます。 クラスファクトリ クラスファクトリを使ってインスタンス化します。その仕組みを見てみましょう。 簡単な COM コンポーネントの実装例 単純な COM コンポーネントを実装してみます。 簡単な COM クライアントの実装 上で作った COM コンポーネントを利用するプログラムの実装例です。 ここまでお

    COM プログラミング入門 - Web/DB プログラミング徹底解説
  • CRT デバッグ拡張機能 ~ トレース機能 - Web/DB プログラミング徹底解説

    CRT デバッグライブラリの有効化 ビルドオプション Microsoft のC コンパイラである Visual C++ の C Run-Time ライブラリにはデバッグ用の 拡張機能が組み込まれています。 これを利用するためには、コンパイラオプションとリンカオプションを設定します。 必要なリンカオプションは /DEBUG のみです。 コンパイラオプションは、/MDd、 /MTd または /LDd のいずれかを指定します。

    CRT デバッグ拡張機能 ~ トレース機能 - Web/DB プログラミング徹底解説
  • ページヒープ (PageHeap) によるヒープオーバーランの検出

    検出されにくいヒープオーバーラン はじめに、この資料でどのような問題を解決できるのか簡単に説明します。 次のコードを見てください。 #include <windows.h> #include <assert.h> #include <stdio.h> void foo() { printf ( "Entering foo()\n" ); char* p = NULL; p = (char*) HeapAlloc ( GetProcessHeap(), 0, 8 ); assert( p ); ZeroMemory ( p, 16 ); // BUGBUG HeapFree ( GetProcessHeap(), 0, p ); printf ( "Exit foo()\n" ); } int main(int argc, char* argv[]) { foo(); return 0; }

    ページヒープ (PageHeap) によるヒープオーバーランの検出
  • Windbg を用いたリモートデバッグ - Web/DB プログラミング徹底解説

  • 例外 - Web/DB プログラミング徹底解説

    デバッガでプログラムの実行の様子を見ていると、しばしば例外が発生していることが確認できます。 ある例外は意図的だったり、ある例外は極めて致命的なものであったり、さまざまな状態があります。 トラブルシューティングをするにあたり、例外の仕組みについて理解を深めておくことは重要です。 特に Windows の構造化例外処理 (SEH) 及び言語特有の例外処理の関係は重要です。 関連トピック .NET デバッグ ~ 例外オブジェクトの捕まえ方 構造化例外処理と UnhandledExceptionFilter ファーストチャンス例外とセカンドチャンス例外 Windows の構造化例外処理では、別ページでも少し書いたように 例外が発生したときに、例外ディスパッチャによって例外ハンドラを探しはじめます。 デバッガがアタッチされている場合は、例外ハンドラ探しの前にデバッガに例外が発生されたことが通知され

    例外 - Web/DB プログラミング徹底解説
    hikobae
    hikobae 2012/09/11
    1st chance exceptionと2nd chance exception
  • Debug Diagnostic Tool を利用したクラッシュ時のデバッグ方法

    デバッグには大きく分けて二つあります。 ひとつは、ライブデバッグで、もうひとつはポストモーテムデバッグといいます。 ライブデバッグというのは、要は生きているプロセス (プログラム) にデバッガをアタッチして、実行中のプログラムを診断するものです。Visual Studio などで開発しているとき、ちょっと動かして止めて、直して、なんてやることがあると思いますが、あれがライブデバッグです。 ライブデバッグも、Visual Studio のような統合開発環境の中で実施するものと、番環境で稼働中のプログラムに対して行うものまで、形態はさまざまです。 ポストモーテムデバッグというのは、ポストモーテム (=死後の) という言葉の通り、プログラムが ”死んだ” ときの様子から、その原因を突き止めるものです。代表的な方法は、メモリダンプの採取です。プロセス終了時のダンプを採取して、持ち帰り、それを解析

    Debug Diagnostic Tool を利用したクラッシュ時のデバッグ方法
  • Web/DB プログラミング徹底解説

    *.keicode.com について 2005年頃から個人的にソフトウェアの技術記事をまとめて、 当サイトに情報を掲載開始。その後、さまざまなテーマ毎に初心者向けの入門サイトなどをまとめてきました。 主な姉妹サイトとしては 「Python 入門」「Android 入門」 「Java 入門」「基礎からの IoT 入門」などがあります。 最近は YouTube チャンネル「IT なるほど TV」も開設し、動画を用いた技術解説も行っていくつもりです。 (なかなか更新できていませんが、やめたわけではありませんので、ぜひチャンネル登録をよろしくお願いします!) 当サイトのウェブホスティングについて 当サイトはブルーホストという米系のウェブホスティングを利用して運用しています。 参考までに書くと 2018年3月の実績では keicode.com ドメインの関連サイト合わせて、 月間約 25万 PV で

    Web/DB プログラミング徹底解説
    hikobae
    hikobae 2010/08/08
    ActiveDirectory, IIS, Debug
  • WinSock で簡易パケットキャプチャを作ろう - Web/DB プログラミング徹底解説

    ネットワークの管理やトラブルシューティングなどをしていると、 ネットワークにどのようなデータが流れているかみなければいけない (あるいは見てみたい) 場合がよくあります。 Windows の環境だとそのような場合に使えるツールとして、何と言っても Network Monitor が挙げられます。 昔は NT4 Server や Windows 2000 Server などのサーバー OS の管理ツールとして OS に同梱されていましたが、 今はマイクロソフトのダウンロードセンターからダウンロード可能です。 Network Monitor 3.4 のダウンロード その他、有名どころとしては、Wireshark (と WinPCap) があります。 どちらも大変優れたソフトウェアで、ネットワークの解析に非常に役に立ちます。 しかし、何かあった時に 「ちょっとネットワークを見たい」 という時もあ

    WinSock で簡易パケットキャプチャを作ろう - Web/DB プログラミング徹底解説
  • 1