1

If the array contains 100000000 item , it is too long to output all of the itemsm so may I know if I want to just output ten items of the array with windbg, such as !da top 10 address, how to deal with it ?

Jason
  • 1,115
  • 14
  • 25

1 Answers1

4

The !da command takes -start and -length parameter:

 -start <startIndex>: optional, only supported for single dimension array. 
                      Specify from which index the command shows the elements.
 -length <length>:    optional, only supported for single dimension array. 
                      Specify how many elements to show.

In you can use !mdt with the -start: and -count: parameters:

!sosex.mdt [typename | paramname | localname | MT] [ADDR] 
           [-r[:level]] [-e[:level]] [-start:index] [-count:n]

Or you can use NetExt. The !wdo command works for arrays and has /start and /end parameters to limit the indices:

!wdo [/forcearray] [/shownull] [/noheader] [/noindex] [/mt <expr>]
     [/start <expr>] [/end <expr>] <expr>
  /mt <expr> - mt,Method table for value objects (space-delimited)
  <expr> - Address,Object Address
  /start <expr> - Starting index to show in an array (space-delimited)
  /end <expr> - Ending index to show in an array (space-delimited)
  /forcearray - For Byte[] and Char[] arrays show items not the string
  /shownull - For arrays will show items that are null
  /noheader - Display only object address and field and values
  /noindex - For arrays it will show values without the index
  /tokens - show class and type tokens for fields
Thomas Weller
  • 55,411
  • 20
  • 125
  • 222