32bit和64bit切换:!wow64exts.sw
查看进程运行的时间:vertarget
查看依赖的动态库(包含dll的路径):lmf
查看pdb文件:lm
查看所有的线程堆栈:~*kbn
切换线程:~20s
切换线程上的栈信息:.frame x (x代表的堆栈)
输出信息到日志:.logopen c:text.log &&.logclose
自动分析:!analyze -v
查看所有线程的优先级:~* (Priority)
显示锁信息:!lcoks
列出CriticalSection的详细信息:!cs
保存dmp信息:.dump /ma C:\dumps\myapp.dmp
查看某个handle的具体信息:!handle xxx f
设置远程symbol位置:SRV*F:\问题定位\20180511\sym1*http://msdl.microsoft.com/download/symbols
重新加载所有的符号表:.reload /f
每个线程消费的时间:!runaway 0x1(0x1代表的是线程消耗的用户模式时间,0x2代表消耗的内核时间,0x4每个线程从创建经历了多少时间)
显示当前作用域的所有局部变量的名字和值:dv
查看内存地址上的数据:db xxx (字节值和ASCII字符)
dt -r 表示的是递归的深度,比较实用与结构体的时候 以及stl的string vector
kbn 100 显示多少层的堆栈
!teb 查看相应的线程块信息
dps 0x10 0x12 在对应的地址上找函数指针
dpa /dpu 0x12 0x12 在对应的地址上寻找unicode字符串或ansi字符串
.lastevent 命令显示最近一次发生的异常或事件。
x test1!*g_*查找test1模块里面的相关信息
EXCEPTION_ACCESS_VIOLATION 0xC0000005 程序企图读写一个不可访问的地址时引发的异常。例如企图读取0地址处的内存。
EXCEPTION_ARRAY_BOUNDS_EXCEEDED 0xC000008C 数组访问越界时引发的异常。
EXCEPTION_BREAKPOINT 0x80000003 触发断点时引发的异常。
EXCEPTION_DATATYPE_MISALIGNMENT 0x80000002 程序读取一个未经对齐的数据时引发的异常。
EXCEPTION_FLT_DENORMAL_OPERAND 0xC000008D 如果浮点数操作的操作数是非正常的,则引发该异常。所谓非正常,即它的值太小以至于不能用标准格式表示出来。
EXCEPTION_FLT_DIVIDE_BY_ZERO 0xC000008E 浮点数除法的除数是0时引发该异常。
EXCEPTION_FLT_INEXACT_RESULT 0xC000008F 浮点数操作的结果不能精确表示成小数时引发该异常。
EXCEPTION_FLT_INVALID_OPERATION 0xC0000090 该异常表示不包括在这个表内的其它浮点数异常。
EXCEPTION_FLT_OVERFLOW 0xC0000091 浮点数的指数超过所能表示的最大值时引发该异常。
EXCEPTION_FLT_STACK_CHECK 0xC0000092 进行浮点数运算时栈发生溢出或下溢时引发该异常。
EXCEPTION_FLT_UNDERFLOW 0xC0000093 浮点数的指数小于所能表示的最小值时引发该异常。
EXCEPTION_ILLEGAL_INSTRUCTION 0xC000001D 程序企图执行一个无效的指令时引发该异常。
EXCEPTION_IN_PAGE_ERROR 0xC0000006 程序要访问的内存页不在物理内存中时引发的异常。
EXCEPTION_INT_DIVIDE_BY_ZERO 0xC0000094 整数除法的除数是0时引发该异常。
EXCEPTION_INT_OVERFLOW 0xC0000095 整数操作的结果溢出时引发该异常。
EXCEPTION_INVALID_DISPOSITION 0xC0000026 异常处理器返回一个无效的处理的时引发该异常。
EXCEPTION_NONCONTINUABLE_EXCEPTION 0xC0000025 发生一个不可继续执行的异常时,如果程序继续执行,则会引发该异常。
EXCEPTION_PRIV_INSTRUCTION 0xC0000096 程序企图执行一条当前CPU模式不允许的指令时引发该异常。
EXCEPTION_SINGLE_STEP 0x80000004 标志寄存器的TF位为1时,每执行一条指令就会引发该异常。主要用于单步调试。
EXCEPTION_STACK_OVERFLOW 0xC00000FD 栈溢出时引发该异常。
RegionUsageIsVAD "busy" 区域。包括所有 虚拟分配块、SBH堆、自定义内存分配器(custom allocators)的内存、以及地址空间中所有属于其他分类的内存块。
RegionUsageFree 目标的虚拟地址空间中所有可用内存。包括所有非提交(committed)和非保留(reserved)的内存。
RegionUsageImage 用来映射二进制映像的内存区域。
RegionUsageStack 用作目标进程的线程的堆栈的内存区域。
RegionUsageTeb 用作目标进程中所有线程的线程环境块(TEB)的内存区域。
RegionUsageHeap 用作目标进程的堆的内存区域。
RegionUsagePageHeap 用作目标进程的整页堆(full-page heap)的内存区域。
RegionUsagePeb 目标进程的进程环境块(PEB)的内存区域。
RegionUsageProcessParametrs 用作目标进程启动参数的内存区域。
RegionUsageEnvironmentBlock 用作目标进程的环境块的内存区域。
MEM_IMAGE 映射的文件属于可执行映像一部分的内存。
MEM_MAPPED 映射的文件不属于可执行映像一部分的内存。这种内存包含哪些从页面文件映射的内存。
MEM_PRIVATE 私有的(即不和其他进程共享)并且未用来映射任何文件的内存。
MEM_COMMIT 当前已提交给目标使用的所有内存。已经在物理内存或者页面文件中为这些内存分配了物理的存储空间。
MEM_RESERVE 所有为目标以后的使用保留的内存。这种内存还没有分配物理上的存储空间。
MEM_FREE 目标虚拟地址空间中所有可用内存。包括所有未提交并且未保留的内存。该Filter 值和RegionUsageFree一样
查看内存泄漏的时候
gflags imagefile create user mode stack trace database选中
!heap 可以大概的看一下里面有几个堆信息
!heap -h 可以看每个堆的具体信息
!heap 0x11111111111 -v 查看这个堆上面的具体信息
!heap -s 查看地址上的堆信息
!heap -stat -h 04920000 去观察这段内存(04920000)的详细情况,可以看到这地址上的内存分布
!heap -flt s 4 去查进程中size=4的所有内存
!heap -p -a 0365e8f0查看堆上的调用堆栈
dumpbin –headers dlltest.dll,查看头信息,确认32bit或64bit
.effmach [MachineType]
amd64
该虚拟内存的文件名为 "pagefile.sys"
netsh interface ipv4 show dynamicportrange protocol=tcp
netsh interface ipv4 show tcpstats
netsh int ipv4 set dynamicport tcp start=2000 num=63000
netsh int ipv4 set dynamicport udp start=2000 num=63000
netsh int ipv6 set dynamicport tcp start=2000 num=63000
netsh int ipv6 set dynamicport udp start=2000 num=63000
ospf
route add 192.168.0.0 mask 255.255.0.0 192.168.1.1
route delete
psping.exe -b -l 1500 -n 15000 10.33.43.107:22
netsh int ipv4 set dynamicport tcp start=2000 num=63000
netsh int ipv4 set dynamicport udp start=2000 num=63000
netsh int ipv6 set dynamicport tcp start=2000 num=63000
netsh int ipv6 set dynamicport udp start=2000 num=63000
然后修改一下注册表缩短time-wait的时间。
regedit打开注册表,添加
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
“MaxUserPort”=dword:0000fffe
“TcpTimeWaitDelay”=dword:0000005 (缩短为5秒)
?? sizeof(dc_task_t)
C:\Users\shiyuefeng>netstat -an|findstr LISTENING|find /V /C ""
!peb
dt _PEB 7efde000
source insight 高亮某个变量 f8
netstat -an|findstr LISTENING|find /V /C ""
redis cmd:
auth IVMS9310-COMS
HGETALL 000000000001310944595
增加原代码的地址
.srcpath +
查看程序所用的内存
!address summary
dt -b this 默认this指针是放到ecx寄存器里面的
?? (CDcVAG*)@ecx
0:233> .frame 09
09 2769fe9c 72a32177 DcSNMP!CDcSNMP::SNMPWorkProc+0x71e [e:\code\dc_dag_v2.4.1\deviceplugin\dcplugin\dc_src\src\dcsnmp\dcsnmp.cpp @ 699]
0:233> ? @ebp
Evaluate expression: 661255276 = 2769f46c
0:233> ? @esp
Evaluate expression: 661255120 = 2769f3d0
0:233> r
eax=00000000
ebx=2769f420
ecx=00000000
edx=00000000
esi=00000002
edi=2769f440
eip=7710016d
esp=2769f3d0
ebp=2769f46c iopl=0
0:233> .frame 0a
0a 2769fea0 72a3854a DcSNMP!CDcSNMP::S_SNMPWorkProc+0x17 [e:\code\dc_dag_v2.4.1\deviceplugin\dcplugin\dc_src\src\dcsnmp\dcsnmp.cpp @ 634]
因为堆栈的话是从高地址往低地址 ,所以ebp作为栈帧 会比esp栈顶会大一点
低地址
------ esp
|
栈帧 被调用者控制范围
|
------新的ebp
*********************
返回地址 -----
参数区域 | 调用者控制
|
testlimit.exe -h 查看进程的句柄限制
testlimit.exe -t 查看32bit进程的线程限制
testlimit64.exe -t 查看64bit进程的线程限制
testlimit.exe -p 查看系统的进程限制
x VAXPlayer!* 查看模块里面的函数以及对应的函数地址
lmvm DcVag 可以查看动态库的时间和版本信息
0:269> !lmi dc-dag 查看exe的信息
查看临界区里面的参数
dt _RTL_CRITICAL_SECTION 12d42438
查看句柄泄漏
!htrace -enable命令开启句柄检测
!htrace -snapshot命令,获得此时进程句柄的镜像。让程序继续运行。
中断进程运行,使用!htrace -diff命令获得当前句柄状态与第4步 snapshot镜像句柄的差异;
使用lsa 传递指定位置对应的代码,lsa Lab2010_2!HandleLeakFunc+0x00000012
!htrace -enable
!htrace -snapshot
//do something
!htrace -diff
lsa Test!HandleLeakFunc+0x0000002e
.exr:此命令显示一个异常记录的详细内容,传入一个异常记录地址:
.exr 记录地址
如果仅仅为了显示最近的一条异常记录,可以用-1代替异常记录地址:
.exr -1
由于异常是事件的一种,所以使用.exr -1命令得到的异常,可能和使用.lastevent命令获取的事件(其实是异常),是同一个。
但二者显示的信息各有侧重点。
还有一个类似的命令:!cppexr,他分析并显示一个C++异常信息。
ub 反汇编函数之前的
u 反汇编函数之后的
uf 反汇编整个函数
如果要反汇编某一个地址,直接用u命令加地址,如果存在符号文件,也可以这样直接加函数名。
ub 指示要反汇编的区域是向后计算的,如果使用了ubAddress ,反汇编区域是以Address结束的8或9条指令。如果用ubAddressLLength语法指定区域,则反汇编以Address结尾的指定长度的内容。
uf 命令显示内存中指定函数的反汇编代码。
查看第四个参数,默认windbg只能看到三个参数, esp好像保存了堆栈栈顶指针好像...
# ChildEBP RetAddr Args to Child
00 22e0f0d0 76f2ebae 00000a1c 00000000 00000000 ntdll!ZwWaitForSingleObject+0x15
01 22e0f134 76f2ea92 00000000 00000000 00000000 ntdll!RtlpWaitOnCriticalSection+0x13e
02 22e0f15c 19f2ae3b 1a1e4d78 19eff0ff 1a1e4d78 ntdll!RtlEnterCriticalSection+0x150
03 22e0f164 19eff0ff 1a1e4d78 223bbf90 3a090020 PlayCtrl!WINDOWS_EnterCriticalSection+0xb
04 22e0f1c0 19f04b23 1a1e4d78 223bbf90 3a090020 PlayCtrl!CHikLock::CHikLock+0x1f [d:\smf\7.3.3\playctrl\porttohandle.h @ 39]
05 22e0f22c 6da34996 00000000 3a090020 00480000 PlayCtrl!PlayM4_GetJPEG+0x33 [d:\smf\7.3.3\playctrl\playctrl_shell.cpp @ 3507]
06 22e0f25c 6da34684 2608dc68 22e0f280 d92ef92e hik_play_plugin!CPlayImplement::GetJPEG+0xb6 [e:\wenling\vag_client\code\src\play_plugins\hik_play_plugin\play_plugin_implement.cpp @ 1755]
07 22e0f2d4 6da3425a 00000000 2cba8290 22e0f35c hik_play_plugin!CPlayImplement::SnapShotOnce+0xb4 [e:\wenling\vag_client\code\src\play_plugins\hik_play_plugin\play_plugin_implement.cpp @ 1653]
08 22e0f2e4 6da36d1c 6ec3e3b0 2cba8290 ffffffff hik_play_plugin!CPlayImplement::StartSnapShot+0xba [e:\wenling\vag_client\code\src\play_plugins\hik_play_plugin\play_plugin_implement.cpp @ 1511]
09 22e0f2f4 6ec3ddb0 223bbf90 22e0f390 6ec3e3b0 hik_play_plugin!Play_StartSnapShot+0x1c [e:\wenling\vag_client\code\src\play_plugins\hik_play_plugin\play_plugin_interface.cpp @ 522]
WARNING: Stack unwind information not available. Following frames may be wrong.
0a 22e0f35c 6ec324ee 00003a29 013ce1c0 19166768 vag_playctrl!VPLAY_SetRotateAngle+0xb100
0b 22e0f6c0 013c76b1 22e0f71c 19166858 d922d3fa vag_playctrl!VPLAY_StartSnapShot+0x3e
0c 22e0f82c 013cde8d 1946e368 d922d3a2 00000000 iVMS_DiagnoseServer!CVQDTask::DealDecodeMsg+0x161 [e:\vqdnew\vqdsever\sourcecode\vqdserver\vqdplanmanager\vqdtask\vqdtask.cpp @ 1941]
0d 22e0f874 6da35d91 00003a29 2dbf0040 00480000 iVMS_DiagnoseServer!VPLAYDecodeDataCallback+0x1cd [e:\vqdnew\vqdsever\sourcecode\vqdserver\vqdplanmanager\vqdtask\vqdtask.cpp @ 114]
0e 22e0f8a4 19f0a392 00000000 2dbf0040 00480000 hik_play_plugin!CPlayImplement::HikDecodeDataCallback+0x61 [e:\wenling\vag_client\code\src\play_plugins\hik_play_plugin\play_plugin_implement.cpp @ 2817]
0f 22e0f93c 19f0a233 2c9c6b40 22e0fa80 00000000 PlayCtrl!CPortPara::ResponseDecodeCBMend+0x152 [d:\smf\7.3.3\playctrl\portpara.cpp @ 1299]
10 22e0f99c 19efc705 2c9c6b40 22e0fa80 1a1eab50 PlayCtrl!DecodeCBMend+0x23 [d:\smf\7.3.3\playctrl\portpara.cpp @ 1222]
11 22e0fb0c 19ef93d8 2dbf0040 265ec808 00000000 PlayCtrl!CHKVDecoder::DoDecodeCallback+0x185 [d:\smf\7.3.3\src\workmodule\decoder\videodecoder\chkvdecoder.cpp @ 2960]
12 22e0fc2c 19efbc68 d92ebe1f 00000000 223b7210 PlayCtrl!CHKVDecoder::OutputData+0x908 [d:\smf\7.3.3\src\workmodule\decoder\videodecoder\chkvdecoder.cpp @ 1199]
13 22e0fcbc 19efb935 00000000 22e0fd80 00000000 PlayCtrl!CHKVDecoder::WriteFrame+0x328 [d:\smf\7.3.3\src\workmodule\decoder\videodecoder\chkvdecoder.cpp @ 2621]
想查看下面这个函数的第四个参数
0d 22e0f874 6da35d91 00003a29 2dbf0040 00480000 iVMS_DiagnoseServer!VPLAYDecodeDataCallback+0x1cd [e:\vqdnew\vqdsever\sourcecode\vqdserver\vqdplanmanager\vqdtask\vqdtask.cpp @ 114]
l表示的是长度
0:121> dd esp l200
22e0f0d0 76eff8e1 76f2ebae 00000a1c 00000000
22e0f0e0 00000000 1a1e4d78 1a1e4d7c 00000000
22e0f0f0 00000000 00000010 22e0f15c 19f2ae4b
22e0f100 1a1e4d78 00000001 1a1e4d78 00000002
22e0f110 00000010 00000000 3a090020 00090001
22e0f120 00000000 00000000 00000000 7ee6d000
22e0f130 00000a1c 22e0f15c 76f2ea92 00000000
22e0f140 00000000 00000000 223bbf90 3a090020
22e0f150 00000004 00000000 00000001 22e0f1c0
22e0f160 19f2ae3b 1a1e4d78 19eff0ff 1a1e4d78
22e0f170 223bbf90 3a090020 00000000 00000058
22e0f180 2608dced 22e0f1a4 73a63db8 070a0000
22e0f190 00000000 00000050 00000000 070a0000
22e0f1a0 2608dcc0 22e0f1bc 73a63eb8 002e0005
22e0f1b0 8e3f6b05 0000004b 00000000 22e0f228
22e0f1c0 22e0f22c 19f04b23 1a1e4d78 223bbf90
22e0f1d0 3a090020 00000000 00000000 00480000
22e0f1e0 223bbf90 00000000 00000010 22e0f204
22e0f1f0 73a63eb8 00480000 00000000 000507e1
22e0f200 001c0000 22e0f234 6da375c0 00000000
22e0f210 22e0f230 73a25ea9 3a090020 00480000
22e0f220 3a090020 00000000 1a1e4d78 ffffffff
22e0f230 6da34996 00000000 3a090020 00480000
22e0f240 22e0f254 223bbf90 00000010 22e0f2d4
22e0f250 00000000 00480000 00000600 00000800
22e0f260 6da34684 2608dc68 22e0f280 d92ef92e
22e0f270 22e0f5b8 223bbf90 00000000 ffffffff
22e0f280 00000000 00000003 2608dc00 73445989
22e0f290 06f8e9d4 2cba8294 00000000 0000000f
22e0f2a0 06f8e9d4 2608dc68 22e0f35c ffffffff
22e0f2b0 06f8e1f4 0000004b 0000004f d92ef926
22e0f2c0 06f8f078 22e0f34c 6da384db 00000000
22e0f2d0 00000001 00000001 6da3425a 00000000
22e0f2e0 2cba8290 22e0f35c 6da36d1c 6ec3e3b0
22e0f2f0 2cba8290 ffffffff 6ec3ddb0 223bbf90
22e0f300 22e0f390 6ec3e3b0 2cba8290 00000000
22e0f310 22e0f390 ffffffff 19166768 6ec38909
22e0f320 22e0f390 013ce1c0 19166768 d927007a
22e0f330 070aa190 22e0f920 2cf70280 ffffffff
22e0f340 2cba8290 19d7d7a8 d9270006 22e0f820
22e0f350 6ec4a368 00000000 070aa1b4 22e0f6c0
22e0f360 6ec324ee 00003a29 013ce1c0 19166768
22e0f370 2dbf0040 013c83da 00003a29 22e0f390
22e0f380 013ce1c0 19166768 ffffffff 19166768
22e0f390 00000000 00000000 00000000 00000000
22e0f3a0 00000050 00000000 00000000 00000000
22e0f3b0 482f3a43 32366b69 50443030 2f736369
22e0f3c0 37313032 38323530 0000002f 00000000
22e0f3d0 00000000 00000000 00000000 00000000
22e0f3e0 00000000 00000000 00000000 00000000
22e0f3f0 00000000 00000000 00000000 00000000
22e0f400 00000000 00000000 00000000 00000000
22e0f410 00000000 00000000 00000000 00000000
22e0f420 00000000 00000000 00000000 00000000
22e0f430 00000000 00000000 00000000 00000000
22e0f440 00000000 00000000 00000000 00000000
22e0f450 00000000 00000000 00000000 00000000
22e0f460 00000000 00000000 00000000 00000000
22e0f470 00000000 00000000 00000000 00000000
22e0f480 00000000 00000000 00000000 00000000
22e0f490 00000000 00000000 00000000 00000000
22e0f4a0 00000000 00000000 00000000 00000000
22e0f4b0 00000000 33313134 35373332 33313030
22e0f4c0 35303031 38373630 00000000 00000000
22e0f4d0 00000000 00000000 00000000 00000000
22e0f4e0 00000000 00000000 00000000 00000000
22e0f4f0 00000000 00000000 00000000 00000000
22e0f500 00000000 00000000 00000000 00000000
22e0f510 00000000 00000000 00000000 00000000
22e0f520 00000000 00000000 00000000 00000000
22e0f530 00000000 00000000 00000000 00000000
22e0f540 00000000 00000000 00000000 00000000
22e0f550 00000000 00000000 00000000 00000000
22e0f560 00000000 00000000 00000000 00000000
22e0f570 00000000 00000000 00000000 00000000
22e0f580 00000000 00000000 00000000 00000000
22e0f590 00000000 00000000 00000000 00000000
22e0f5a0 00000000 00000000 00000000 00000000
22e0f5b0 00000000 00000000 482f3a43 32366b69
22e0f5c0 50443030 2f736369 37313032 38323530
22e0f5d0 3131342f 37333233 31303035 30303133
22e0f5e0 37363035 706a2e38 00000067 00000000
22e0f5f0 00000000 00000000 00000000 00000000
22e0f600 00000000 00000000 00000000 00000000
22e0f610 00000000 00000000 00000000 00000000
22e0f620 00000000 00000000 00000000 00000000
22e0f630 00000000 00000000 00000000 00000000
22e0f640 00000000 00000000 00000000 00000000
22e0f650 00000000 00000000 00000000 00000000
22e0f660 00000000 00000000 00000000 00000000
22e0f670 00000000 00000000 00000000 00000000
22e0f680 00000000 00000000 00000000 00000000
22e0f690 00000000 00000000 00000000 00000000
22e0f6a0 00000000 00000000 00000000 00000000
22e0f6b0 00000000 00000000 00000000 d922dd16
22e0f6c0 22e0f82c 013c76b1 22e0f71c 19166858
22e0f6d0 d922d3fa 5929ad23 22e0f7cc 19f01e90
22e0f6e0 22e0f7c8 22e0f7cc 19f01ee0 2cba8290
22e0f6f0 00000000 00000000 00000019 00000000
22e0f700 00000e7f 027f0000 00000000 19161800
22e0f710 00000000 1946e368 19166768 482f3a43
22e0f720 32366b69 50443030 2f736369 37313032
22e0f730 38323530 0000002f 00000000 00000000
22e0f740 00000000 00000000 00000000 00000000
22e0f750 00000000 00000000 00000000 00000000
22e0f760 00000000 00000000 00000000 00000000
22e0f770 00000000 00000000 00000000 00000000
22e0f780 00000000 00000000 00000000 00000000
22e0f790 00000000 00000000 00000000 00000000
22e0f7a0 00000000 00000000 00000000 00000000
22e0f7b0 00000000 00000000 00000000 00000000
22e0f7c0 00000000 00000000 00000000 00000000
22e0f7d0 00000000 00000000 00000000 00000000
22e0f7e0 00000000 00000000 00000000 00000000
22e0f7f0 00000000 00000000 00000000 00000000
22e0f800 00000000 00000000 00000000 00000000
22e0f810 00000000 00000000 00000000 d922d3fa
22e0f820 22e0f868 013e2049 ffffffff 22e0f874
22e0f830 013cde8d 1946e368 d922d3a2 00000000
22e0f840 00000000 00000000 39c00020 1946e368
22e0f850 00000019 1946e368 1946e368 19166768
22e0f860 00000003 1946e368 22e0fb00 013e22d3
22e0f870 ffffffff 22e0f93c 6da35d91 00003a29 //在这边,可以看到所有的函数参数
22e0f880 2dbf0040 00480000 22e0f898 19166768
22e0f890 00000000 265ec568 00000800 00000600
22e0f8a0 00f0b263 00000003 19f0a392 00000000
22e0f8b0 2dbf0040 00480000 22e0f920 223bbf90
22e0f8c0 00000000 00000000 265ec568 2cf70280
0:121> dt 22e0f898 VPLAY_FRAME_INFO
+0x000 iWidth : 2048
+0x004 iHeight : 1536
+0x008 iTimeStamp : 15774307
+0x00c iFrameType : 3
没什么用了其实 ,只能用vs08的 vs2013不适用
:000> !stl gg
[da 0x83af18]
0083af18 "fffffffffffffffffff"
0:000> !stl V_St
Element 0
Unrecognized type 'MyStruct_S' as an STL structure -- Defaulting to `dt -n (MyStruct_S) 0x838580`
ggg!MyStruct_S
+0x000 nNum : 0n12
+0x004 strpwd : std::basic_string<char,std::char_traits<char>,std::allocator<char> >
Element 1
Unrecognized type 'MyStruct_S' as an STL structure -- Defaulting to `dt -n (MyStruct_S) 0x8385a4`
ggg!MyStruct_S
+0x000 nNum : 0n13
+0x004 strpwd : std::basic_string<char,std::char_traits<char>,std::allocator<char> >
Element 2
Unrecognized type 'MyStruct_S' as an STL structure -- Defaulting to `dt -n (MyStruct_S) 0x8385c8`
ggg!MyStruct_S
+0x000 nNum : 0n14
+0x004 strpwd : std::basic_string<char,std::char_traits<char>,std::allocator<char> >
Element 3
Unrecognized type 'MyStruct_S' as an STL structure -- Defaulting to `dt -n (MyStruct_S) 0x8385ec`
ggg!MyStruct_S
+0x000 nNum : 0n15
+0x004 strpwd : std::basic_string<char,std::char_traits<char>,std::allocator<char> >
0:000> dt -n (MyStruct_S) 0x838580
ggg!MyStruct_S
+0x000 nNum : 0n12
+0x004 strpwd : std::basic_string<char,std::char_traits<char>,std::allocator<char> >
0:000> dt -n -r (MyStruct_S) 0x838580
ggg!MyStruct_S
+0x000 nNum : 0n12
+0x004 strpwd : std::basic_string<char,std::char_traits<char>,std::allocator<char> >
+0x000 _Myfirstiter : (null)
+0x004 _Alval : std::allocator<char>
=01370000 npos : 0x905a4d
+0x008 _Bx : std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Bxty
+0x000 _Buf : [16] "test1"
+0x000 _Ptr : 0x74736574 "--- memory read error at address 0x74736574 ---"
+0x018 _Mysize : 5
+0x01c _Myres : 0xf