Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

862 lines
30 KiB

  1. /************************************************************************\
  2. *
  3. * MODULE: exts.h
  4. *
  5. * DESCRIPTION: macro driving file for use with stdexts.h and stdexts.c.
  6. *
  7. * Copyright (c) 1985 - 1999, Microsoft Corporation
  8. *
  9. * 6/9/1995 SanfordS Created
  10. *
  11. \************************************************************************/
  12. DOIT( help
  13. ,"help -v [cmd] - Displays this list or gives details on command\n"
  14. ," help - To dump short help text on all commands.\n"
  15. " help -v - To dump long help text on all commands.\n"
  16. " help cmd - To dump long help on given command.\n"
  17. ,"v"
  18. ,CUSTOM)
  19. #ifdef KERNEL
  20. DOIT( atom
  21. ,"atom - Dump atoms or atom tables\n"
  22. ,"atom -gl [atom]\n"
  23. ,"gl"
  24. ,STDARGS1)
  25. #endif // KERNEL
  26. #ifndef KERNEL
  27. DOIT( cbp
  28. ,"cbp - Breaks into the Debugger on CSRSS.EXE\n"
  29. ,""
  30. ,""
  31. ,NOARGS)
  32. #endif
  33. #ifndef KERNEL
  34. DOIT( dci
  35. ,"dci - Dump process client info.\n"
  36. ,""
  37. ,""
  38. ,NOARGS)
  39. #endif //!KERNEL
  40. #ifdef KERNEL
  41. DOIT( dcls
  42. ,"dcls [pcls] - Dump window class\n"
  43. ," dcls -v - for verbose info.\n"
  44. " dcls - to list all classes.\n"
  45. " dcls -p ppi - to list all classes for process ppi\n"
  46. ,"pv"
  47. ,STDARGS1)
  48. #endif // KERNEL
  49. #ifdef KERNEL
  50. DOIT( dcur
  51. ,"dcur -aivp [pcur] - Dump cursors\n"
  52. ," dcur - dump all cursor objects.\n"
  53. " dcur -i <id> - dump cursors with given res id.\n"
  54. " dcur -p <ppi>- dump cursors owned by ppi.\n"
  55. " dcur -v - dump in verbose format.\n"
  56. " dcur -a - expand dump of ACONs.\n"
  57. " dcur <pcur> - dump given cursor handle or pointer.\n"
  58. ,"aivp"
  59. ,STDARGS1)
  60. #endif // KERNEL
  61. #ifdef KERNEL
  62. DOIT( dde
  63. ,"dde -vr [conv|window|xact] - Dump DDE tracking information\n"
  64. ," v - verbose\n"
  65. " r - recurse to inner structures 1 level\n"
  66. " window object - dumps all convs associated w/window\n"
  67. " conv object - dumps conversation.\n"
  68. " xact object - dumps transaction.\n"
  69. ,"vr"
  70. ,STDARGS1)
  71. #endif // KERNEL
  72. #ifdef KERNEL
  73. DOIT( ddl
  74. ,"ddl [pdesk] - Dump desktop log\n"
  75. ," ddl pdesk - dumps the desktop log for pdesk.\n"
  76. " ddl -v pdesk - dumps the desktop log for pdesk with stack traces.\n"
  77. ,"v"
  78. ,STDARGS1)
  79. #endif // KERNEL
  80. #ifdef OLD_DEBUGGER
  81. #ifndef KERNEL
  82. DOIT( ddeml
  83. ,"ddeml -v [i<inst>] [t<type>] [hObj|pObj] - Dump DDEML state information\n"
  84. ," ddeml - lists all ddeml instances for this process\n"
  85. " ddeml t<type> - lists all ddeml objects of the given type\n"
  86. " type 0 = All types\n"
  87. " type 1 = Instances\n"
  88. " type 2 = Server Conversations\n"
  89. " type 3 = Client Conversations\n"
  90. " type 4 = Conversation Lists\n"
  91. " type 5 = Transactions\n"
  92. " type 6 = Data Handles\n"
  93. " type 7 = Zombie Conversations\n"
  94. " ddeml i<instance> t<type> - restricts listing to one instance.\n"
  95. " ddeml hObj - dumps ddeml object\n"
  96. " adding a 'v' simply turns lists into dumps.\n"
  97. ,"v"
  98. ,CUSTOM)
  99. #endif //!KERNEL
  100. #endif // OLD_DEBUGGER
  101. #ifdef KERNEL
  102. DOIT( ddesk
  103. ,"ddesk -vhd <pdesk> - Displays objects allocated in desktop\n"
  104. ," ddesk - dumps list of desktops\n"
  105. " ddesk address - dumps simple statistics for desktop\n"
  106. " ddesk -v address - dumps verbose statistics for desktop\n"
  107. " ddesk -h address - dumps statistics for desktop plus handle list\n"
  108. " ddesk -[vh]d ... - dumps DLL name for hooks (slow)\n"
  109. ,"vhd"
  110. ,STDARGS1)
  111. #endif // KERNEL
  112. #ifdef KERNEL
  113. DOIT( ddk
  114. ,"ddk <pKbdTbl> - Dump deadkey table\n"
  115. ," ddk pKbdTbl - Dump the deadkey table at pKbdTbl\n"
  116. ,""
  117. ,STDARGS1)
  118. #endif // KERNEL
  119. DOIT( df
  120. ,"df [flags] | [-p pid] | [-l] - Displays or sets debug flags\n"
  121. ," df - display debug flags\n"
  122. " df [flags] - enter new flags in format <Detail><Print><Prompt> \n"
  123. " <Detail> = [0-3] Print File/Line = 1, Hide PID/Component = 2\n"
  124. " <Print> = [0-7] Errors = 1, Warnings = 2, Verbose = 4\n"
  125. " <Prompt> = [0-7] Errors = 1, Warnings = 2, Verbose = 4\n"
  126. " The default is 031\n"
  127. " df -p pid - shows rips only for this pid or 0 for all\n"
  128. " df -l - sets the flags for only this process [userexts only]\n"
  129. ,"px"
  130. ,CUSTOM)
  131. DOIT( dhe
  132. ,"dhe [pointer|handle] | [-t[o[p]] type [pti/ppi]] - Dump handle entry(ies)\n"
  133. ," dhe - dumps all handle entrys\n"
  134. " -t dumps of all handles of the given type\n"
  135. " -o all handles owned by pti/ppi\n"
  136. " -op all handles owned by ppi or any thread in this process\n"
  137. ,"orpt"
  138. ,STDARGS2)
  139. #ifdef KERNEL
  140. DOIT( dhard
  141. ,"dhard - Dump hard error list\n"
  142. ,""
  143. ,""
  144. ,NOARGS)
  145. #endif //KERNEL
  146. #ifdef KERNEL
  147. DOIT( dhid
  148. ,"dhid [-pv] [ppi] - Dump HID info\n"
  149. ," dhid - dumps global HID information\n"
  150. " dhid -p - dumps global HID information and process requests\n"
  151. " dhid -p ppi - dumps global HID info and proc requests of ppi (faster)\n"
  152. " dhid -v - verbose (can be combined with -p)\n"
  153. ,"pv"
  154. ,STDARGS1)
  155. #endif
  156. #ifdef KERNEL
  157. DOIT( dhk
  158. ,"dhk -ag[d] [pti] - Dump hooks\n"
  159. ," dhk - dumps local hooks on the foreground thread\n"
  160. " dhk -g - dumps global hooks\n"
  161. " dhk pti - dumps local hooks on THREADINFO at pti\n"
  162. " dhk -g pti - dumps global hooks and local hooks on THREADINFO at pti\n"
  163. " dhk -a - dumps local hooks for all threads\n"
  164. " dhk -ag - dumps global hooks and local hooks for all threads\n"
  165. " dhk -[ag]d ... - dumps DLL name (slow)\n"
  166. ,"gad"
  167. ,STDARGS1)
  168. #endif
  169. #ifdef KERNEL
  170. DOIT( dhot
  171. ,"dhot - Dump registered hotkeys\n"
  172. ," dhot - dumps all registered hotkeys\n"
  173. " dhot photkey - dumps HOTKEY photkey\n"
  174. " dhot -r photkey - dumps all registered hotkeys after/including photkey"
  175. ,"r"
  176. ,STDARGS1)
  177. #endif
  178. #ifdef KERNEL
  179. DOIT( dhnr
  180. ,"dhnr - Dump HID notification record\n"
  181. ," dhnr [-vn] - dumps all notification record (-n for pathname)\n"
  182. " dhnr iseq - dumps iseq notification record\n"
  183. " dhnr -p[vn] <ptr> - dumps notification record at addres <ptr>\n"
  184. " dhnr -d[vnm] <pDevInfo> - dumps records of pDevInfo (-m to match pathname)\n"
  185. ,"pvndm"
  186. ,STDARGS1)
  187. #endif
  188. #ifdef KERNEL
  189. DOIT( dhs
  190. ,"dhs -vpty [id|type] - Dump handle table statistics\n"
  191. ," dhs - dumps simple statistics for whole table\n"
  192. " dhs -t id - dumps simple statistics for objects created by thread id\n"
  193. " dhs -p id - dumps simple statistics for objects created by process id\n"
  194. " dhs -v - dumps verbose statistics\n"
  195. " dhs -y type - dumps statistics for objects of type.\n"
  196. ,"tpvy"
  197. ,STDARGS1)
  198. #endif
  199. #ifdef KERNEL
  200. DOIT( di
  201. ,"di - Displays USER input processing globals.\n"
  202. ,""
  203. ,""
  204. ,NOARGS)
  205. #endif // KERNEL
  206. DOIT( dimc
  207. ,"dimc [-hrvus] -[wci] [imc|wnd,etc.] - Dump Input Context\n"
  208. ," dimc [opts] <himc|pimc> - dumps kernel side imc\n"
  209. " dimc [opts] -w wnd - dumps kernel side imc of wnd\n"
  210. " dimc [opts] -c <pClientImc> - dumps client side imc\n"
  211. " dimc [opts] -i <pInputContext> - dumps inputcontext\n"
  212. " -h - show open, conversion, sentence mode and handles\n"
  213. " -d - show hCompStr, hCanInfo etc (includes -h).\n"
  214. " -r - recurse pImeModeSaver\n"
  215. " -v - verbose\n"
  216. " -u - assume UNICODE (use with -i)\n"
  217. " -s - show relatively raw Composition String\n"
  218. " -a - all (except -v)\n"
  219. ,"wcihdrvusa"
  220. ,STDARGS1)
  221. #ifdef KERNEL
  222. DOIT( dimk
  223. ,"dimk [pImeHotKeyObj] - Dump IME Hotkeys\n"
  224. ,""
  225. ,""
  226. ,STDARGS1)
  227. #endif
  228. #ifdef OLD_DEBUGGER
  229. #ifndef KERNEL
  230. DOIT( dimedpi
  231. ,""
  232. ," dimedpi - Dump all IMEDPI\n"
  233. " dimedpi <addr> - Dump IMEDPI at <addr>\n"
  234. " dimedpi -v - Dump with !dso format\n"
  235. " dimedpi -i - Dump ImeInfo\n"
  236. ,"vi"
  237. ,STDARGS1)
  238. #endif // !KERNEL
  239. #endif // OLD_DEBUGGER
  240. #ifdef KERNEL
  241. DOIT( dinp
  242. ,"dinp -v [pDeviceInfo] - Dump input diagnostics\n"
  243. ," dinp <addr> - Complete DeviceInfo struct at <addr>\n"
  244. " dinp - Short summary of all input devices\n"
  245. " dinp -i <addr> - Dump input records for DeviceInfo struct at <addr>\n"
  246. " dinp -v - Dump complete DeviceInfo for all devices\n"
  247. ,"iv"
  248. ,STDARGS1)
  249. DOIT( _dinp
  250. ,"\0_dinp -v [pDeviceInfo] - Dump input diagnostics\n"
  251. ," dinp <addr> - Complete DeviceInfo struct at <addr>\n"
  252. " dinp - Short summary of all input devices\n"
  253. " dinp -i <addr> - Dump input records for DeviceInfo struct at <addr>\n"
  254. " dinp -v - Dump complete DeviceInfo for all devices\n"
  255. ,"iv"
  256. ,STDARGS1)
  257. #endif
  258. #ifdef KERNEL
  259. DOIT( dkl
  260. ,"dkl -akv <pkl> - Dump keyboard layout structures\n"
  261. ," dkl [-v] pkl - Dump the keyboard layout structure at pkl\n"
  262. " dkl -a[v] [pkl] - Dump all keyboard layout structures beginning with pkl\n"
  263. " dkl -k - Dump pklActive for all threads\n"
  264. ,"akv"
  265. ,STDARGS1)
  266. #endif
  267. DOIT( _disi
  268. ,""
  269. ,"\0_disi <pinput> - Dump event injection union\n"
  270. ""
  271. ,""
  272. ,STDARGS1)
  273. DOIT( _ddlgt
  274. ,""
  275. ,"ddlgt <pdlgTemplate> - Dump dialog template\n"
  276. " ddlgt -v <pdlgTemplate> - verbose\n"
  277. " ddlgt -r <pdlgTemplate> - print dialog items\n"
  278. ,"vr"
  279. ,STDARGS1)
  280. DOIT( dll
  281. ,"dll [*]addr [l#] [b#] [o#] [c#] [t[addr]] - Dump linked list (can Ctrl-C)\n"
  282. ," dll addr - dumps list starting at addr 8 DWORDs each structure,\n"
  283. " assumes link is first DWORD, w/NULL termination.\n"
  284. " dll *addr - same except starts at *addr\n"
  285. " dll - dumps next group of structures w/same options\n"
  286. " \nOptions:\n"
  287. " dll addr l3 - dumps 3 DWORDs per structure (default 8)\n"
  288. " dll addr b2 - starts dump 2 DWORDs back - for LIST_ENTRYs (default 0)\n"
  289. " dll addr o4 - next link is 4 DWORDs from top of structure (default 0)\n"
  290. " dll addr c5 - dumps 5 structures only (defaults to 25)\n"
  291. " dll addr l3 b2 o4 c5 - combines the option of the four previous lines\n"
  292. " dll addr t - counts (not dumps) items in list, tests for loop\n"
  293. " dll addr t<addr> - as above, halts if item at <addr> is found\n"
  294. " dll addr t c5000 - as above, but limit c5000 (t default is c100000)\n"
  295. ,""
  296. ,CUSTOM)
  297. #ifdef KERNEL
  298. DOIT( dlr
  299. ,"dlr -lsc <pointer|handle> - Displays assignment locks for object\n"
  300. ," dlr <pointer|handle> - dumps lock record\n"
  301. " dlr -l - dump current lock record flags\n"
  302. " dlr -s <hex> - set lock record flag\n"
  303. " dlr -c <hex> - clear lock record flag\n"
  304. " flag 0 is to record simple locks\n"
  305. ,"lcs"
  306. ,CUSTOM)
  307. #endif //KERNEL
  308. DOIT( dm
  309. ,"dm -vris <menu|window> - Dumps a menu\n"
  310. ," -v - Verbose information mode\n"
  311. " -r - Recurse through sub-menus\n"
  312. " -i - Ignore items in the menu\n"
  313. " -s - dump a window's System menu\n"
  314. ,"virs"
  315. ,STDARGS1)
  316. DOIT( dmon
  317. ,"dmon <pMonitor> - Dump MONITOR\n"
  318. ," dmon <pMonitor> - dump MONITOR at address\n"
  319. ,""
  320. ,STDARGS1)
  321. #ifdef KERNEL
  322. DOIT( dmq
  323. ,"dmq [-act] [pq] - Messages in queues\n"
  324. ," dmq [pq] - lists messages in queue specified (default gpqForeground)\n"
  325. " dmq -a - lists messages in all queues\n"
  326. " dmq -c [pq] - counts messages in pq or all queues\n"
  327. " dmq -t <pti> - dump messages in pti\n"
  328. ,"act"
  329. ,STDARGS1)
  330. #endif
  331. #ifdef KERNEL
  332. DOIT( dms
  333. ,"dms <MenuState> - Dumps a pMenuState\n"
  334. ,""
  335. ,""
  336. ,STDARGS1)
  337. #endif // KERNEL
  338. #ifdef KERNEL
  339. DOIT( dp
  340. ,"dp -vcpt [id] - Displays simple process information\n"
  341. ," dp - dumps simple process info of all W32 processes\n"
  342. " dp -v - verbose output\n"
  343. " dp id/pep - dumps process with given id or PEPROCESS pointer\n"
  344. " dp -p ppi - takes a ppi instead of a process id/pep\n"
  345. " dp -c - dumps current process\n"
  346. " dp -t - dumps threads for given process.\n"
  347. ,"vpct"
  348. ,STDARGS1)
  349. #endif
  350. #ifdef OLD_DEBUGGER
  351. #ifndef KERNEL
  352. DOIT( dped
  353. ,"dped <ped> - Dump PEDitControl structure\n"
  354. ,""
  355. ,""
  356. ,STDARGS1)
  357. #endif //!KERNEL
  358. #endif // OLD_DEBUGGER
  359. #ifdef KERNEL
  360. DOIT( dpi
  361. ,"dpi [ppi] - Displays PROCESSINFO structure specified\n"
  362. ," dpi -c - dumps PROCESSINFO for current process\n"
  363. " dpi -p <eprocess> - dumps PROCESSINFO for <eprocess>\n"
  364. " dpi address - dumps PROCESSINFO structure at address\n"
  365. " dpi - dumps all PROCESSINFO structures\n"
  366. ,"cp"
  367. ,STDARGS1)
  368. #endif // KERNEL
  369. #ifdef KERNEL
  370. DOIT( dpm
  371. ,"dpm <ppopupmenu> - Dumps a popupmenu\n"
  372. ,""
  373. ,""
  374. ,STDARGS1)
  375. #endif // KERNEL
  376. #ifdef KERNEL
  377. DOIT( dq
  378. ,"dq -t [pq] - Displays Q structure specified\n"
  379. ," dq address - dumps queue structure at address\n"
  380. " dq -t address - dumps queue structure at address plus THREADINFO\n"
  381. " dq -a - dumps all queues\n"
  382. " dq - dumps gpqForeground\n"
  383. ,"at"
  384. ,STDARGS1)
  385. #endif // KERNEL
  386. DOIT( dsi
  387. ,"dsi [-bchmopvw] - Displays SERVERINFO struct\n"
  388. ,"dsi -b - adds mpFnid_serverCBWndProc info.\n"
  389. "dsi -c - adds aszSysColor info.\n"
  390. "dsi -h - adds SHAREDINFO info.\n"
  391. "dsi -m - adds system metrics data.\n"
  392. "dsi -o - adds oemInfo info.\n"
  393. "dsi -p - adds mpFnidPfn info.\n"
  394. "dsi -v - verbose shows rarely needed fields.\n"
  395. "dsi -w - adds aStoCidPfn info.\n"
  396. ,"bchjmopvw"
  397. ,STDARGS0)
  398. #ifdef KERNEL
  399. DOIT( dsms
  400. ,"dsms -vl [psms] - Displays SMS (SendMessage structure) specified\n"
  401. ," dsms - dumps all send message structures\n"
  402. " dsms -c - counts messages, doesn't display any\n"
  403. " dsms -v - dumps all verbose\n"
  404. " dsms -w - dumps a bit verbose info\n"
  405. " dsms -m msg - dumps all sms with message == msg\n"
  406. " dsms address - dumps specific sms\n"
  407. " dsms -v address- dumps verbose\n"
  408. " dsms -r pti - dumps sms with receiver == pti\n"
  409. " dsms -s pti - dumps sms with sender == pti\n"
  410. // " dsms -l address- dumps SendList of sms\n"
  411. ,"clmvsrw"
  412. ,STDARGS1)
  413. #endif // KERNEL
  414. #ifdef KERNEL
  415. DOIT( dt
  416. ,"dt -gvcp [id] - Displays simple thread information\n"
  417. ," dt - dumps simple thread info of all window threads\n"
  418. " dt -c - dumps current thread\n"
  419. " dt -g - dump GUI threads only\n"
  420. " dt id/pet - dumps thread with given id or PETHREAD pointer\n"
  421. " dt -p pti - takes a pti instead of a thread id/pet\n"
  422. " dt -s [...] - displays wait state\n"
  423. " dt -v - verbose output\n"
  424. ,"cgpsv"
  425. ,STDARGS1)
  426. #endif
  427. #ifdef KERNEL
  428. DOIT( dtdb
  429. ,"dtdb [ptdb] - Dump Task Database\n"
  430. ," dtdb <ptdb> - dumps given ptdb.\n"
  431. " dtdb - dumps all dtdbs.\n"
  432. ,""
  433. ,STDARGS1)
  434. #endif // KERNEL
  435. #ifdef KERNEL
  436. DOIT( dti
  437. ,"dti [pti] - Displays THREADINFO structure\n"
  438. ," dti - dumps all THREADINFO structures\n"
  439. " dti -f - dumps THREADINFO structure of foreground thread\n"
  440. " dti address - dumps THREADINFO structure at address\n"
  441. " dti -c - dumps THREADINFO structure of current thread\n"
  442. ,"cf"
  443. ,STDARGS1)
  444. #endif // KERNEL
  445. #ifdef KERNEL
  446. DOIT( dtl
  447. ,"dtl [-t] [pointer|handle] - Displays thread locks\n"
  448. ,"dtl pObj - dump thread locks for object/pool/kernel-object\n"
  449. "dtl -t pti - dump thread locks for thread\n"
  450. "dtl - dump all thread locks\n"
  451. ,"t"
  452. ,STDARGS1)
  453. #endif //KERNEL
  454. #ifdef KERNEL
  455. DOIT( dtmr
  456. ,"dtmr [ptmr] - Dumps timer structure.\n"
  457. ," dtmr <ptmr> - dump timer.\n"
  458. " dtmr -i <tmrid> - dump timer with id <tmrid>.\n"
  459. " dtmr - dump all timers.\n"
  460. ,"i"
  461. ,STDARGS1)
  462. #endif // KERNEL
  463. #ifdef OLD_DEBUGGER
  464. DOIT( du
  465. ,"du [pointer|handle] - Generic object dumping routine\n"
  466. ," Attempts to dump the object appropriately.\n"
  467. " If no object is given - WARNING - ALL objects are dumped.\n"
  468. ,""
  469. ,STDARGS1)
  470. #endif // OLD_DEBUGGER
  471. #ifdef KERNEL
  472. DOIT( dupm
  473. ,"dupm - User Preference Bitmask\n"
  474. ,""
  475. ,""
  476. ,NOARGS)
  477. #endif //KERNEL
  478. #ifdef OLD_DEBUGGER
  479. #ifdef KERNEL
  480. DOIT( dumphmgr
  481. ,"dumphmgr [-s] - Dumps object allocation counts (dbg only)\n"
  482. ,""
  483. ,"s"
  484. ,STDARGS0)
  485. #endif //KERNEL
  486. #endif // OLD_DEBUGGER
  487. DOIT( dw
  488. ,"dw -aefhvsprwoz [hwnd/pwnd] - Displays information on windows in system\n"
  489. ,
  490. " dw hwnd/pwnd - dumps simple window info for window at pwnd\n"
  491. " dw - dumps simple window info for all top level windows of current\n"
  492. " desktop.\n"
  493. " dw -v [pwnd] - dumps verbose window info\n"
  494. " dw -a - added to any of the other commands - applies to all desktops.\n"
  495. " dw -f [pwnd] - dumps flags for window at pwnd or all toplevel windows\n"
  496. " dw -h - add -h to show wndproc symbol - slower.\n"
  497. " dw -o pwnd - dumps properties of pwnd.\n"
  498. " dw -p pwnd - dumps info for all child windows of window at pwnd\n"
  499. " dw -r [pwnd] - dumps relationship of windows beneath pwnd or desktop window\n"
  500. " dw -s pwnd - dumps info for all sibling windows of window at pwnd\n"
  501. " dw -t <pti> - Like EnumThreadWindows\n"
  502. " dw -w pwnd - dumps window words of pwnd.\n"
  503. " dw -z - Added to show z-ordering/activation relevant info\n"
  504. ,"afhvsprtwoz"
  505. ,STDARGS1)
  506. #ifdef OLD_DEBUGGER
  507. #ifdef KERNEL
  508. DOIT( dwe
  509. ,"dwe [-n] [addr] - Displays WinEvent hooks/notifies\n"
  510. ,
  511. " dwe <peh> - dump EVENTHOOK struct.\n"
  512. " dwe - dump all EVENTHOOKS.\n"
  513. " dwe -n <pn> - dump NOTIFY struct.\n"
  514. " dwe -n - dump all NOTIFYs.\n"
  515. ,"n"
  516. ,STDARGS1)
  517. #endif // KERNEL
  518. #ifdef KERNEL
  519. DOIT( dwpi
  520. ,"dwpi -p [pwpi | ppi] - Displays WOWPROCESSINFO structure specified\n"
  521. ," dwpi <pwpi> - dump a pwpi structure.\n"
  522. " dwpi -p <ppi> - dump pwpis for this process.\n"
  523. " dwpi - dump all pwpis.\n"
  524. ,"p"
  525. ,STDARGS1)
  526. #endif // KERNEL
  527. #endif // OLD_DEBUGGER
  528. #ifdef KERNEL
  529. DOIT( dws
  530. ,"dws [pws] - Dump windowstations\n"
  531. ," dws <pws> - dump windows station\n"
  532. " dws - dump all window stations\n"
  533. ,""
  534. ,STDARGS1)
  535. DOIT( dpa
  536. ,"dpa -cvsfrp - Dump pool allocations\n"
  537. ," dpa -c - dump current pool allocations statistics\n"
  538. " dpa -v - dump all the current pool allocations\n"
  539. " dpa -vs - include stack traces\n"
  540. " dpa -f - dump failed allocations\n"
  541. " dpa -r - dump free pool\n"
  542. " dpa -p <ptr> - dump the allocation containing pointer 'ptr'\n"
  543. ,"cvsfrp"
  544. ,STDARGS1)
  545. DOIT( dcss
  546. ,"dcss - Dump critical section stack traces\n"
  547. ," dcss - dump all stack straces\n"
  548. ,""
  549. ,STDARGS0)
  550. DOIT( dvs
  551. ,"dvs -s - Dump sections and mapped views\n"
  552. ," dvs -s - dump stack traces also\n"
  553. ,"s"
  554. ,STDARGS1)
  555. #ifdef OLD_DEBUGGER
  556. DOIT( dfa
  557. ,"dfa - Dump allocation fail stack trace\n"
  558. ," dfa - dump allocation fail stack trace\n"
  559. ,""
  560. ,STDARGS1)
  561. DOIT( dha
  562. ,"dha address - Dump heap allocations. Also verifies the heap the address belongs to\n"
  563. ," dha -v - Prints out all allocations in the heap\n"
  564. " dha -a - apply the command to all heaps. \nWith no address specified, it checks all allocations in all heaps\n"
  565. ,"va"
  566. ,STDARGS1)
  567. #endif // OLD_DEBUGGER
  568. #endif // KERNEL
  569. DOIT( dy
  570. ,"dy [pdi] - Dump DISPLAYINFO\n"
  571. ," dy - dump gpDispInfo\n"
  572. " dy address - dump DISPLAYINFO at address\n"
  573. ,""
  574. ,STDARGS1)
  575. DOIT( find
  576. ,"find baseaddr addr [o#] - Find linked list element\n"
  577. ," find baseaddr addr - searches list for addr starting at baseaddr,\n"
  578. " assumes link is first DWORD, w/NULL termination.\n"
  579. " find baseaddr addr o4 - next link is 4 DWORDS from start of structure\n"
  580. ,""
  581. ,CUSTOM)
  582. #ifdef OLD_DEBUGGER
  583. DOIT( fno
  584. ,"fno <address> - Find nearest object.\n"
  585. ," Locates the nearest public USER objects to the given address.\n"
  586. ,""
  587. ,STDARGS1)
  588. DOIT( frr
  589. ,"frr <psrcLo> <psrcHi> <prefLo> [prefHi] - Find Range Reference\n"
  590. ," Used to search memory within the src range for references to\n"
  591. " addresses within the ref range.\n"
  592. ,""
  593. ,STDARGS4)
  594. #endif // OLD_DEBUGGER
  595. #ifdef KERNEL
  596. DOIT( gflags
  597. ,"\0gflags [-v] - Displays NT Global Flags\n"
  598. ," gflags - Dump and interpret the NT global flags\n"
  599. " gflags -v - A little bit verbose\n"
  600. ,"v"
  601. ,STDARGS0)
  602. #endif // KERNEL
  603. #ifdef KERNEL
  604. DOIT( kbd
  605. ,"kbd -au [pq] - Displays key state for queue\n"
  606. ," kbd - key state for foreground queue\n"
  607. " kbd pq - key state for queue structure at pq\n"
  608. " kbd -a - key state for all queues\n"
  609. " kbd -u pb - wParam of WM_UPDATEKEYSTATE event\n"
  610. " kbd -k vk - check given vkey status\n"
  611. " kbd -s - show all vk status\n"
  612. ,"auks"
  613. ,STDARGS1)
  614. #endif // KERNEL
  615. DOIT( sas
  616. ,"sas [-s] <addr> [length] - Stack Analysis Stuff\n"
  617. ,"sas -d [-s] <number> - to just analyze a number.\n"
  618. " length defaults to 25.\n"
  619. " -s suppresses symbolic output.\n"
  620. ,"ds"
  621. ,STDARGS2)
  622. DOIT( tag
  623. ,"tag [<tag #> [<flags>]] - Displays or sets tags\n"
  624. ," tag - display all tags\n"
  625. " tag <tag #> - display one tag\n"
  626. " tag <tag #> <flags> - change tag settings\n"
  627. " <flags> = [0-3] Disabled = 0, Enabled = 1, Print = 2, Prompt = 3\n"
  628. ,""
  629. ,CUSTOM)
  630. DOIT( test
  631. ,"test - Test basic debug functions.\n"
  632. ,""
  633. ,""
  634. ,NOARGS)
  635. DOIT( uver
  636. ,"uver - show versions of user and exts.\n"
  637. ,""
  638. ,""
  639. ,NOARGS)
  640. DOIT( vkey
  641. ,""
  642. ,"vkey - show vkey values\n"
  643. " vkey hex - display VK symbol\n"
  644. " vkey VK_* - display hex value for VK_ symbol\n"
  645. " vkey -a - display all common VK values\n"
  646. " vkey -o - display all common VK values in one column\n"
  647. ,"ao"
  648. ,CUSTOM)
  649. #ifdef KERNEL
  650. DOIT( hh
  651. ,"hh - dumps gdwHydraHint.\n"
  652. ,"hh hydrahint - dumps a specified DWORD as a hydra hint\n"
  653. ,""
  654. ,STDARGS1)
  655. #endif // KERNEL
  656. #ifdef OLD_DEBUGGER
  657. #ifndef KERNEL
  658. DOIT( kc
  659. ,"kc pwnd - Displays information on Keyboard Cues\n"
  660. ,""
  661. ,""
  662. ,STDARGS1)
  663. #endif // !KERNEL
  664. #endif // OLD_DEBUGGER
  665. DOIT( wm
  666. ,"wm, vkey, ddlgt, disi: see each help\n"
  667. ,"wm <msg> - Displays window message symbol\n"
  668. " wm exp - display WM_ symb\n"
  669. " wm WM_ - display message value\n"
  670. " wm -a - display all common window messages\n"
  671. ,"a"
  672. ,CUSTOM)
  673. DOIT( _wm
  674. ,""
  675. ,"_wm <msg> - Displays window message symbol\n"
  676. " _wm exp - display WM_ symb\n"
  677. " _wm WM_ - display message value\n"
  678. " _wm -a - display all common window messages\n"
  679. ,"a"
  680. ,CUSTOM)
  681. #ifdef KERNEL
  682. DOIT( hogs
  683. ,"hogs [N] - Dump CPU hogs\n"
  684. ,"hogs - dump the kerneltime of all threads in descending order\n"
  685. "hogs N - dump the N threads using the most kerneltime\n"
  686. ,""
  687. ,STDARGS1)
  688. #endif // KERNEL
  689. DOIT( pred
  690. ,"\0pred - dump ia64 predicate registers\n"
  691. ,"pred xxxx - dump predicate registers\n"
  692. ,""
  693. ,STDARGS1)
  694. DOIT( chkfre
  695. ,"\0chkfre [-c] [-f]\n"
  696. ,""
  697. ,"cfr"
  698. ,STDARGS1)
  699. #ifdef KERNEL
  700. DOIT( dghost
  701. ,"dghost - Dump ghost thread associated information.\n"
  702. ,""
  703. ,""
  704. ,NOARGS)
  705. DOIT( dce
  706. ,"dce - Dumps DC Cache Entry information.\n"
  707. ,
  708. " dce -c pwndClip - Clipping PWND\n"
  709. " dce -f DCXxxx - DCX flag filter\n"
  710. " dce -h hdc - HDC\n"
  711. " dce -o pwndOrg - Original PWND\n"
  712. " dce -r hrgnClip - Clipping region\n"
  713. " dce -t pti - pThreadInfo\n"
  714. " dce -v - Verbose\n"
  715. ,"cfhortv"
  716. ,STDARGS1)
  717. #endif // KERNEL
  718. #ifndef KERNEL
  719. DOIT( msft
  720. ,"msft - Dump the current stock price\n"
  721. ,""
  722. ,""
  723. ,NOARGS)
  724. #endif // !KERNEL
  725. DOIT( daccel
  726. ,"daccel <pAccelTable | hAccelTable> - Dump the given accelerator table\n"
  727. ,""
  728. ,""
  729. ,STDARGS1)
  730. #ifdef KERNEL
  731. DOIT( heapff
  732. ,"heapff <pHeapBlock> - Looks for the given heap address in our list of freed heap.\n"
  733. ,""
  734. ,""
  735. ,STDARGS1)
  736. #endif
  737. DOIT( dheap
  738. ,"dheap [-o <pid>] [-p] [-t] [-s] <pheap> - dumps heap information for a win32 heap.\n"
  739. ,
  740. "dheap -o <pid> - dumps heap information only allocated by pid.\n"
  741. "dheap -p - dumps heap statistics by allocated pid.\n"
  742. "dheap -t - sorts heap allocation by tag.\n"
  743. "dheap -s - sorts heap allocation by size.\n"
  744. ,"opts"
  745. ,STDARGS2)
  746. DOIT( fcsrp
  747. ,"fcsrp <pid> - Find the given PID in the CSR process list.\n"
  748. ,""
  749. ,""
  750. ,STDARGS1)
  751. #ifdef KERNEL
  752. DOIT( findd
  753. ,"findd <pDesktop> - Finds all processes using the specified desktop.\n"
  754. ,""
  755. ,""
  756. ,STDARGS1)
  757. #endif
  758. DOIT( dcmu
  759. ,"dcmu - Dumps mem usage by console screen buffers.\n"
  760. ,"dcmu - Dumps mem usage by console screen buffers.\n"
  761. ,"v"
  762. ,STDARGS0)
  763. DOIT( dcalias
  764. ,"dcalias - Dump console alias list.\n"
  765. ,"dcalias - Dumps alias list for all console windows.\n"
  766. "dcalias <pConsole> - Dumps alias list for pConsole.\n"
  767. ,""
  768. ,STDARGS1)