简介
DML象HTML那样允许在一定格式的标记中包含指令和不显示的信息。调试器的用户界面将能分析额外的信息并提供新的特性。
DML的两个主要功能:
1.链接信息,link标记能链接到其他部分
2.外观显示,封装命令到预装的外观中,如说明文本
内容说明
DML
对特殊字符的处理规则近似于XML/HTML。&, <, >和”都是特殊字符,不能直接在纯文本中使用。对应的转义字符为&, <, >和"
例如下面的一句话:
“Alice & Bob think 3 < 4”
转换为DML
"Alice & Bob think 3 < 4"
有一个与XML/HTML不同的重要规则,DML文本可以包含不同风格的格式化字符,例如\b, \t, \r和\n。这是为了兼容已存在的调试文本
DML标记参考
<link [name=”text”] [cmd=”debugger_command”] [section=”name”]>link text</link>
在DML中,该link标记基于超级链接结构。当链接被点击时,它将指示用户界面显示被链接的文本。当一个带cmd说明符的link被点击时,调试器将会运行该命令并替换当前输出
1.显示的是link text
2.只有带cmd=时,link text才会成为超链接,被点击
3.Name和section参数允许在已命名的link之间导航,这与HTML中的<aname>和#name相似。当带有section参数的link被点击,用户界面将会搜索名字与之匹配的link,并滚动到相应位置。这将允许link指向同一页面的不同区域(或者在新页面中特殊的区域)。DML的section名必须是独立的,以避免重新定义新的语法来允许section名跟在字符串的后面。
<b>text</b>, <i>text</i>, <u>text</u>
这些标记将分别把文本转换成粗体,斜体和下划线。它们能嵌套在其他标记中
如最简单的:
.printf /D "<link cmd=\"? (@eip&@ebx) < 72510001\"><b>text</b></link>"
显示为:
0:000> $$>< c:\3.txt
<u>text</u>0:000> ? (@eip&@ebx) < 72510001
Evaluate expression: 1 = 00000001
<col fg="name" bg="name">text</col>
设置文本的前景和背景颜色。使用颜色名字而不是颜色的绝对值,以允许用户控制他们将会看到的颜色。当前颜色名字(只应用于windbg)
wbg和wfg – 窗口默认的背景和前景颜色。默认为窗口和窗口文本的系统颜色。
clbg和clfg – 当前线段的背景和前景颜色。默认为系统的突显和突显文本
changed – 使用前一个断点以来,被修改的数据,例如windbg中的寄存器被改变,默认为红色。
srcnum, srcchar, srcstr, srcid, srckw, srcpair, srccmnt, srcdrct, srcspid, srcannot – 源颜色元素。你能在windbg中看到默认值
empbg和emphfg – 强调文本。默认为亮蓝。
subbg和subfg – 减弱文本。默认为未激活的标题文本或已激活的标题
normbg, normfg, warnbg, warnfg, errbg, errfg, verbbg, verbfg – 输出等级颜色。你能在windbg中看到默认值
示例:
.printf /D "<link cmd=\"? (@eip&@ebx) < 72510001\"><b><col fg=\"changed\" bg=\"emphfg\">hgy413 dml</col></b></link>\n"