windbg:da没有打印换行符

时间:2017-02-10 07:00:55

标签: debugging memory windbg

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

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

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

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

2 个答案:

答案 0 :(得分:3)

使用.printf代替da

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

注意:

  1. WinDbg %s中没有.printf。使用%ma表示ASCII字符串,%mu表示Unicode(UTF-16)字符串。
  2. 围绕.printf 的参数
  3. 没有括号
  4. 双反斜杠 - 一个是printf - 样式\n的常用反斜杠,第二个是因为WinDbg命令解释器解析这些代码,我们希望.printf获取\n 1}}而不是换行符本身。

答案 1 :(得分:-1)

.logopen x://foo.xxx da / c 256地址/ 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>.."