windbg: da 没有打印换行符
windbg: da without print newline
当我使用像da [eax]
这样的命令时,它通常会打印多行数据:
059f20d0 "..."
059f20f0 "..."
059f2110 "..."
虽然里面没有\r
或\n
,但总是多行。
是否可以在一行中打印这个以 null 结尾的字符串?
使用 .printf
而不是 da
。
例如:.printf "Foo: %ma\n", 0x059f20d0
注:
- WinDbg
.printf
中没有 %s
。对 ASCII 字符串使用 %ma
,对 Unicode (UTF-16) 字符串使用 %mu
。
.printf
的参数周围没有括号
- 双反斜杠 - 一个是
printf
-style \n
常用的反斜杠,第二个是因为 WinDbg 命令解释器解析这些代码,我们希望 .printf
得到\n
而不是换行符本身。
.logopen x://foo.xxx
da /c 256 address/len / 范围
.logclose
标准宽度
0:000> da 5ca608
005ca608 " <dpiAware xmlns="http:/"
005ca628 "/schemas.microsoft.com/SMI/2005/"
005ca648 "WindowsSettings">true</dpiAware>"
005ca668 ".. </windowsSettings>..</appl"
005ca688 "ication>..</assembly>.."
自定义宽度
0:000> da /c 98 5ca608
005ca608 " <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>.. </windowsSettings>..</application>..</assembly>.."
当我使用像da [eax]
这样的命令时,它通常会打印多行数据:
059f20d0 "..."
059f20f0 "..."
059f2110 "..."
虽然里面没有\r
或\n
,但总是多行。
是否可以在一行中打印这个以 null 结尾的字符串?
使用 .printf
而不是 da
。
例如:.printf "Foo: %ma\n", 0x059f20d0
注:
- WinDbg
.printf
中没有%s
。对 ASCII 字符串使用%ma
,对 Unicode (UTF-16) 字符串使用%mu
。 .printf
的参数周围没有括号
- 双反斜杠 - 一个是
printf
-style\n
常用的反斜杠,第二个是因为 WinDbg 命令解释器解析这些代码,我们希望.printf
得到\n
而不是换行符本身。
.logopen x://foo.xxx da /c 256 address/len / 范围 .logclose
标准宽度
0:000> da 5ca608
005ca608 " <dpiAware xmlns="http:/"
005ca628 "/schemas.microsoft.com/SMI/2005/"
005ca648 "WindowsSettings">true</dpiAware>"
005ca668 ".. </windowsSettings>..</appl"
005ca688 "ication>..</assembly>.."
自定义宽度
0:000> da /c 98 5ca608
005ca608 " <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>.. </windowsSettings>..</application>..</assembly>.."