linux

久しぶりにVPN

ずいぶんと久しぶりにVPNの勉強(補強)をしています。以前はIPSecサーバーを立てて、自分で拠点間接続をしたところで満足して、その先に進むことをしませんでした。 あれからずいぶんと経って、今はL2TPやSSTPといったものが出現しています。これらについて、ちょっと勉強をしてみようと思っています。ひとまずは L2TP が良さそうな感じです。何より現時点におい...
プログラミング

関数プロファイラーライブラリを公開です

ちょっと前から作成していた関数プロファイラーをライブラリの形にしたので、これを公開します。 使い方 プログラムの頭で、ProfilerInit() を実行し、終了直前で ProfilerExit() を呼び出します。 付属のライブラリをリンクするようにして、コンパイル時のオプションで"/Gh /GH"を指定します。 例 追加のインクルードディレクトリに DI...
プログラミング

DIAについて -関数フック入れてのプロファイラ作成 (2)

Debug Interface Access SDKを用いて pdb ファイルにアクセスしてみます。 これもプロファイラ作成のための準備のため、です。たぶん簡易プロファイラ作成で一番手間なのはここの分野じゃないかなと思っています。
プログラミング

関数フック入れてのプロファイラ作成 (1)

前回の /Gh,/GH で関数にフックを入れられることがわかったので、これを利用して関数プロファイラを作成してみようと思います。 ただしここで1つ注意点があります。確かに呼ばれた関数のアドレスがわかりますが、そのアドレスがどの関数なのかを知る必要があります。アドレスから関数への対応を知るためには、いくつか方法があります。 mapファイルを参照する pdbファ...
プログラミング

gccでMSVCの_penter,_pexitと同様のことをするには

前回フックについて調べた勢いで、gccで VisualStudio の /Gh,/GHオプション(_penter,_pexit)と同様のことを行うにはどうすればよいかを調べてみました。 調べてみると gcc にも同様の機能を実現するためのオプションを発見しました。 ”instrument-functions”というものです。ただフックの関数名はちょっと違うよ...
プログラミング

_penter,_pexitによるフック有効化について

一部では割と有名なこの機能について実際に触ってみました。VisualStudioのリンカーオプションで、/Gh,/GH で有効にできます。このフラグをONにすると、全関数のIN/OUTで _penter, _pexit という関数がそれぞれコールするようになります。 そしてこの関数については以下のプロトタイプ宣言を持ちます。 void __declspec(...
プログラミング

開発者向けエクスプローラーのサムネイル拡張DLL

作業を続けていたエクスプローラーのサムネイル拡張DLLをバージョンアップ公開します。 現在の対応拡張子(ファイルフォーマット) DDS PSD PVR TGA 前回から変わったところは、内部データの保持方法が変わったことで、RGBA(RGBX)の要素を持つデータの解釈が強力になりました。従来うまく表示できなかったRGBX5551やARGB1555にも対応でき...
DirectX

DDSのRGB 10bitフォーマットの罠

今更といえば今更な話なのですが、あまり情報がないようにみえたのでここにメモしておきます。DDSフォーマットの A2R10G10B10 や A2B10G10R10 の並びの画像データについて罠というか、マイクロソフトも承知のバグが潜んでいました。具体的には、チャンネルのマスクビットが逆転しています・・・。
プログラミング

SDKなしでOpenCLを使ってみる -おまけ-

今回はOpenCLを使ってみる一連の流れで気付いたことを書いてみます。おまけです。
プログラミング

OpenCLのデバッガ(CodeXL)でトラブルに見舞われる

OpenCLのコード書きはおおよそわかってきたので、デバッガについて調べてみようと思います。やはり開発となるとデバッガは必要になってくると思いますし、AMDではCodeXLというツールがあるのでこれを試してみようと思います(ました)。 しかし!、このインストールして確認でとてもトラブルに巻き込まれてしまいました。結局OpenCLのデバッガに関しては検証できず...