デバッガがEXEやDLLに対応するPDBを検索する順序は以下の通り。
実行可能ファイルが存在している場所。
実行可能ファイルに書き込まれたPDBの場所。通常は、イメージがリンクされた時点での場所です。
Visual Studio IDE で設定されている検索パス。
_NT_SYMBOL_PATH 環境変数および _NT_ALT_SYMBOL_PATH 環境変数で定義されているパス。
Windows ディレクトリ。
From DUMPBINのヘルプ
コンパイラで/GLをつけておいて、リンカに/LTCGを渡すと、リンク時に必要なコードの生成をしてくれて、コンパイル単位を跨いだ最適化が行われるらしいです。
モジュール間のインライン展開
関数を超えたレジスタ割り当て (64ビットオペレーティングシステムのみ)
カスタム呼び出し規約 (x86のみ)
小さい TLS の変位 (x86のみ)
スタックの二重配置 (x86のみ)
メモリの一義化 (グローバル変数の干渉情報の改善)
以下のファイルを編集してビルドします。
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