windbg: da 没有打印换行符

windbg: da without print newline

当我使用像da [eax]这样的命令时,它通常会打印多行数据:

059f20d0  "..."
059f20f0  "..."
059f2110  "..."

虽然里面没有\r\n,但总是多行。

是否可以在一行中打印这个以 null 结尾的字符串?

使用 .printf 而不是 da

例如:.printf "Foo: %ma\n", 0x059f20d0

注:

  1. WinDbg .printf 中没有 %s。对 ASCII 字符串使用 %ma,对 Unicode (UTF-16) 字符串使用 %mu
  2. .printf
  3. 的参数周围没有括号
  4. 双反斜杠 - 一个是 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>.."