43.windbg-.expr、n(设置默认的表达式语法、默认的数字基础0x、0n、0t、0y)

来源:互联网 发布:php清空数组所有元素 编辑:程序博客网 时间:2024/05/16 04:56

.expr

.expr 命令指定默认的表达式求值器

0:000> .exprCurrent expression evaluator: MASM - Microsoft Assembler expressions0:000> .expr /s masmCurrent expression evaluator: MASM - Microsoft Assembler expressions0:000> .expr /qAvailable expression evaluators:MASM - Microsoft Assembler expressionsC++ - C++ source expressionsCurrent expression evaluator: MASM - Microsoft Assembler expressions0:000> .expr /s c++Current expression evaluator: C++ - C++ source expressions

/q 显示可用的表达式类型的列表


n (Set Number Base)

n命令将默认的数字基数(radix)设置为指定值,或者显示当前基数。

不要将该命令和~n (Suspend Thread)命令混淆。

n可用来设置缺省基数为 16, 10 或者 8。所有不带前缀的数值都以该基数来解释

当前基数会作用于MASM表达式的输入和输出。它并不作用于C++ 表达式的输入输出

在C++表达式中的数字如果没有专门指定,则被认为是10进制数。

0:000> n 10base is 100:000> ? 1+10Evaluate expression: 11 = 0000000b0:000> n 16    ///切换到16进制base is 160:000> ? 1+10Evaluate expression: 17 = 000000110:000> ?? 1+10int 11

??后表示跟的是C++表达式

调试器启动时,默认的基数被设置为16。

在所有MASM表达式中,数字的值使用当前基数(16, 10, 或8)来进行解释。可以通过指定0x 前缀(16进制)、 0n 前缀(10进制)、0t 前缀(8进制)或者0y 前缀(2进制)来覆盖当前基数。

0:006> nbase is 160:006> ? 0n10+1Evaluate expression: 11 = 0000000b0:006> ? 0t10+1Evaluate expression: 9 = 000000090:006> ? 0y10+1Evaluate expression: 3 = 00000003









原创粉丝点击