次の方法で共有


DbgLockTrace

特定のクリティカル セクションのデバッグ ロギングを有効または無効にする。

構文

  void WINAPI DbgLockTrace(
    CCritSec *pcCrit,
    BOOL fTrace
);

パラメータ

pcCrit

CCritSec クリティカル セクションへのポインタ。

fTrace

ロギングを有効にするかどうかを指定する値。ロギングを有効にするには TRUE を使い、ロギングを無効にするには FALSE を使う。

注意

この関数を使って特定のクリティカル セクションをトレースする。デフォルトでは、クリティカル セクションでのデバッグ ロギングは無効である。クリティカル セクションの数が非常に多いためである。

クリティカル セクションをトレースするには、次のステップを実行する:

  1. DirectShow ヘッダーをインクルードする前に DEBUG または _DEBUG を定義する。
  2. DbgSetModuleLevel を LOG_LOCKING フラグで呼び出してクリティカル セクションのデバッグ ロギングを有効にする。
  3. トレースするクリティカル セクションで DbgLockTrace を呼び出す。

リテール ビルドでは、DbgLockTrace 関数は効力を持たない。

サンプル コード

次のサンプル コードは、クリティカル セクションのトレース方法を示している。

DbgInitialise(g_hInst);
DbgSetModuleLevel(LOG_LOCKING, 3);

{
    CCritSec MyLock;
    DbgLockTrace(&MyLock, TRUE);
    
    CAutoLock cObjectLock(&MyLock);

        // コードの保護された部分。    
    DbgOutString("This code is inside a critical section.\n");

} // ロックはここで解除される。

DbgTerminate();

デバッグ出力例 :

Example.exe(tid 360)     2012 : Thread 864 now owns lock 12fc2c
This code is inside a critical section.
Example.exe(tid 360)     4887 : Thread 864 releasing lock 12fc2c

参照