Chromium Code Reviews| Index: tools/win/ShowThreadNames/ReadMe.txt |
| diff --git a/tools/win/ShowThreadNames/ReadMe.txt b/tools/win/ShowThreadNames/ReadMe.txt |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..402800a6275b7dc91bea5167f2f79163204b75a5 |
| --- /dev/null |
| +++ b/tools/win/ShowThreadNames/ReadMe.txt |
| @@ -0,0 +1,66 @@ |
| +[Motivation] |
| +This tool is designed to test the usage of the SetThreadDescription WinAPI in |
| +Chrome. In Chrome, the SetThreadDescription API has been enabled to set thread |
| +names. However, since there is no tool support to retrieve thread names set by |
| +GetThreadDescription, we will still rely on SetNameInternal function in |
| +platform_thread_win.cc to set thread names. Despite this, we need a tool to |
| +demo the SetThreadDescription API works, even without the debugger to be present. |
|
brucedawson
2017/02/23 01:57:26
One character too long... There are a few others t
chengx
2017/02/23 03:26:03
Done.
|
| + |
| +The problem setting can be referred to |
| +https://bugs.chromium.org/p/chromium/issues/detail?id=684203 |
| + |
| +This tool incorporates the GetThreadDescription API trying to get names of all |
| +threads in a process specified by its ID. If the thread names have been set by |
| +SetThreadDescription API call like in Chrome, all thread ID/name pairs are |
| +returned. |
| + |
| +[Requirement] |
| +Since SetThreadDescription/GetThreadDescription APIs are brought in Windows 10, |
| +version 1607, this tool can only be effective if running in this version or |
| +later ones. |
| + |
| +[Complie the code] |
|
brucedawson
2017/02/23 01:57:26
Typo
chengx
2017/02/23 03:26:03
Done.
|
| +When compiling the code after downloading the files (.cc, .sln, .vcxproj). You |
| +may get compile error like "Cannot convert argument 1 from const wchar_t to |
| +LPCSTR". If this happens, right click project "ShowThreadNames", go to |
| +"Properties", then go to "General". In panel "Project Defaults", change to "Use |
| +Unicode Character Set" in "Character Set" section. |
|
brucedawson
2017/02/23 01:57:26
This should be stored in the project file so this
chengx
2017/02/23 03:26:03
Done.
|
| + |
| +[How to use it] |
| +Run "ShowThreadNames.exe" either from the build direcotory or from Visual Studio. |
|
brucedawson
2017/02/23 01:57:26
directory
chengx
2017/02/23 03:26:03
Done.
|
| +No parameters are needed. This tool allows interaction with users. Once launched, |
| +it will show "Please enter the process Id, or "quit" to end the program :" on the |
| +terminal. Simply type in the ID of any Chrome process you are interested in, and |
| +you will get output like below: |
| + |
| +thread_ID thread_name |
| +12116 |
| +10292 |
| +6532 |
| +6928 |
| +2488 |
| +11304 |
| +2256 AudioThread |
| +9308 BrokerEvent |
| +5668 BrowserWatchdog |
| +4352 Chrome_CacheThread |
| +12268 Chrome_DBThread |
| +8616 Chrome_FileThread |
| +1072 Chrome_FileUserBlockingThread |
| +8280 Chrome_HistoryThread |
| +7472 Chrome_IOThread |
| +6336 Chrome_ProcessLauncherThread |
| +12212 CompositorTileWorker1/12212 |
| +3628 CrBrowserMain |
| +6472 DnsConfigService |
| +1980 IndexedDB |
| +10560 TaskSchedulerBackgroundBlockingWorker0 |
| +11464 TaskSchedulerBackgroundWorker0 |
| +3156 TaskSchedulerForegroundBlockingWorker5 |
| +7660 TaskSchedulerForegroundWorker0 |
| +8216 TaskSchedulerServiceThread |
| +11088 VideoCaptureThread |
| + |
| +The threads have been sorted by their names. Note that some threads have |
| +no names. If double checking them using Visual Studio debugger, it is |
| +found that they are ntdll.dll thread in this example. |