2005-03-29 [長年日記]

PDBの検索順

デバッガがEXEやDLLに対応するPDBを検索する順序は以下の通り。

実行可能ファイルが存在している場所。

実行可能ファイルに書き込まれたPDBの場所。通常は、イメージがリンクされた時点での場所です。

Visual Studio IDE で設定されている検索パス。

_NT_SYMBOL_PATH 環境変数および _NT_ALT_SYMBOL_PATH 環境変数で定義されているパス。

Windows ディレクトリ。

From DUMPBINのヘルプ

/GL/LTCG

コンパイラで/GLをつけておいて、リンカに/LTCGを渡すと、リンク時に必要なコードの生成をしてくれて、コンパイル単位を跨いだ最適化が行われるらしいです。

モジュール間のインライン展開

関数を超えたレジスタ割り当て (64ビットオペレーティングシステムのみ)

カスタム呼び出し規約 (x86のみ)

小さい TLS の変位 (x86のみ)

スタックの二重配置 (x86のみ)

メモリの一義化 (グローバル変数の干渉情報の改善)

デバッグ版OpenSSLの作り方

以下のファイルを編集してビルドします。

ms/libeay32.defのライブラリ名を変える。

LIBRARY         LIBEAY32D	

ms/ssleay32.defのライブラリ名を変える。

LIBRARY         SSLEAY32D	

ms/ntdll.makの以下を変える。

CFLAG= /MDd /Zi /W3 /WX /G5 /Od /Gs0 /GF /Gy /nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_WIN32 -DBN_ASM -DMD5_ASM -DSHA1_ASM -DRMD160_ASM /Fdout32dll -DOPENSSL_NO_KRB5

MLFLAGS= /nologo /subsystem:console /machine:I386 /opt:ref /dll /debug

O_SSL=     $(LIB_D)\$(SSL)d.dll
O_CRYPTO=  $(LIB_D)\$(CRYPTO)d.dll

L_SSL=     $(LIB_D)\$(SSL)d.lib
L_CRYPTO=  $(LIB_D)\$(CRYPTO)d.lib

トップ «前の日記(2005-03-28) 最新 次の日記(2005-03-30)»