View Regex pattern string using windbg
0:004> !threads     
*********************************************************************    
* Symbols can not be loaded because symbol path is not initialized. *    
*                                                                   *    
* The Symbol Path can be set by:                                    *    
*   using the _NT_SYMBOL_PATH environment variable.                 *    
*   using the -y <symbol_path> argument when starting the debugger. *    
*   using .sympath and .sympath+                                    *    
*********************************************************************    
PDB symbol for clr.dll not loaded    
ThreadCount:      2    
UnstartedThread:  0    
BackgroundThread: 1    
PendingThread:    0    
DeadThread:       0    
Hosted Runtime:   no    
                                   PreEmptive   GC Alloc                Lock    
       ID  OSID ThreadOBJ    State GC           Context       Domain   Count APT Exception    
   0    1  1774 0066c328      a020 Enabled  021e5614:021e5fe8 00665b58     0 MTA    
   2    2  17bc 00678150      b220 Enabled  00000000:00000000 00665b58     0 MTA (Finalizer)    
0:004> ~0s     
*** WARNING: Unable to verify checksum for C:\Windows\assembly\NativeImages_v4.0.30319_32\mscorlib\b79870f56fb884856832833fe760f671\mscorlib.ni.dll    
*** ERROR: Module load completed but symbols could not be loaded for C:\Windows\assembly\NativeImages_v4.0.30319_32\mscorlib\b79870f56fb884856832833fe760f671\mscorlib.ni.dll    
eax=00000001 ebx=00000000 ecx=00000000 edx=00000000 esi=0015ec0c edi=0015eb88    
eip=75947468 esp=0015eafc ebp=0015eb1c iopl=0         nv up ei pl nz na po nc    
cs=0023  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00000202    
KERNEL32!VDMConsoleOperation+0x246:    
75947468 83c404          add     esp,4    
0:000> !DumpHeap -type Regex     
….
Statistics:   
      MT    Count    TotalSize Class Name    
62b361b4        3           36 System.Text.RegularExpressions.RegexCharClass+SingleRangeComparer    
62b36188        3           36 System.Text.RegularExpressions.RegexCharClass+SingleRange    
62b362f8        3           48 System.Text.RegularExpressions.RegexFC    
62b3611c        3           72 System.Collections.Generic.List`1[[System.Text.RegularExpressions.RegexCharClass+SingleRange, System]]    
62b35e4c        3           72 System.Collections.Generic.List`1[[System.Text.RegularExpressions.RegexOptions, System]]    
62b35cf8        3           72 System.Text.RegularExpressions.RegexCharClass    
62b362bc        3           84 System.Text.RegularExpressions.RegexFCD    
62b364fc        6           96 System.Text.RegularExpressions.RegexPrefix    
62b35ff4        4           96 System.Text.RegularExpressions.RegexOptions[]    
62b36210        3          108 System.Text.RegularExpressions.RegexTree    
62b35a0c        3          120 System.Text.RegularExpressions.RegexBoyerMoore    
62b36284        3          132 System.Text.RegularExpressions.RegexCode    
62b36248        3          144 System.Text.RegularExpressions.RegexWriter    
62b1e5b4        3          156 System.Text.RegularExpressions.Regex    
62b35e10        3          252 System.Text.RegularExpressions.RegexParser    
62b36540        3          312 System.Text.RegularExpressions.RegexInterpreter    
62b360a4       18          432 System.Collections.Generic.List`1[[System.Text.RegularExpressions.RegexNode, System]]    
62b35d30        1         1140 System.Text.RegularExpressions.RegexCharClass+LowerCaseMapping[]    
62b36040       29         1160 System.Text.RegularExpressions.RegexNode    
Total 100 objects    
0:000> !DumpHeap -mt 62b1e5b4     
 Address       MT     Size    
021db2fc 62b1e5b4       52     
021e1390 62b1e5b4       52     
021e2248 62b1e5b4       52     
total 0 objects    
Statistics:    
      MT    Count    TotalSize Class Name    
62b1e5b4        3          156 System.Text.RegularExpressions.Regex    
Total 3 objects    
0:000> !DumpObj 021db2fc     
Name:        System.Text.RegularExpressions.Regex    
MethodTable: 62b1e5b4    
EEClass:     6295bb8c    
Size:        52(0x34) bytes    
File:        C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll    
Fields:    
      MT    Field   Offset                 Type VT     Attr    Value Name    
6356f9ac  4000001        4        System.String  0 instance 021db210 pattern    
62b3489c  4000002        8 ...egexRunnerFactory  0 instance 00000000 factory    
62b2dd68  4000003       24         System.Int32  1 instance        0 roptions    
6357537c  4000004        c ...ections.Hashtable  0 instance 00000000 caps    
6357537c  4000005       10 ...ections.Hashtable  0 instance 021e0344 capnames    
63526c28  4000006       14      System.Object[]  0 instance 021e0b70 capslist    
63572978  4000007       28         System.Int32  1 instance        2 capsize    
62b35c0c  4000008       18 ...xclusiveReference  0 instance 021e135c runnerref    
62b35c48  4000009       1c ...s.SharedReference  0 instance 021e1370 replref    
62b36284  400000a       20 ...essions.RegexCode  0 instance 021e131c code    
6357662c  400000b       2c       System.Boolean  1 instance        1 refsInitialized    
62b35da8  400000c        4 ...deEntry, System]]  0   static 021db8a0 livecode    
63572978  400000d      864         System.Int32  1   static       15 cacheSize    
0:000> !DumpObj 021db210     
Name:        System.String    
MethodTable: 6356f9ac    
EEClass:     632a8bb0    
Size:        50(0x32) bytes    
File:        C:\Windows\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll    
String:      (?<url>href=".+?")     
Fields:    
      MT    Field   Offset                 Type VT     Attr    Value Name    
63572978  40000ed        4         System.Int32  1 instance       18 m_stringLength    
63571dc8  40000ee        8          System.Char  1 instance       28 m_firstChar    
6356f9ac  40000ef        8        System.String  0   shared   static Empty    
    >> Domain:Value  00665b58:021d1228 <<    
-----------------------------
命令的备注:
0:004> !threads #列出所有托管的线程
0:004> ~0s #转到0号托管进程(~0s),其中0:004中的4表示当前线程ID为4
0:000> !DumpHeap -type Regex #使用!DumpHeap –type 查看Regex的Method Table。
!DumpHeap -mt 62b1e5b4 #查看Method Table所关联的Object
!DumpObj 021db2fc #查看Regex对象的内容
!DumpObj 021db210 #由于String是引用类型,Value显示的是其引用值,再次查看该引用对象(String)的内容
 
                    
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号