1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
/// Donne un nom au thread appelant cette fonction.
/// Ce nom apparaît dans le débogueur de VC++
void SetCurrentThreadName( const char * ThreadName )
{
#ifdef _MSC_VER // VC++
typedef struct tagTHREADNAME_INFO
{
DWORD dwType; // must be 0x1000
LPCSTR szName; // pointer to name (in user addr space)
DWORD dwThreadID; // thread ID (-1=caller thread)
DWORD dwFlags; // reserved for future use, must be zero
} THREADNAME_INFO;
THREADNAME_INFO info;
info.dwType = 0x1000;
info.szName = ThreadName;
info.dwThreadID = static_cast<DWORD>( -1 ); // thread courant
info.dwFlags = 0;
__try
{
::RaiseException(
0x406D1388,
0,
sizeof info / sizeof(DWORD),
(DWORD*)&info );
}
__except ( EXCEPTION_CONTINUE_EXECUTION )
{
}
#else
(void)ThreadName; // éviter les warnings
#endif
} |
Partager