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

.expr

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

0:000> .expr
Current expression evaluator: MASM - Microsoft Assembler expressions
0:000> .expr /s masm
Current expression evaluator: MASM - Microsoft Assembler expressions
0:000> .expr /q
Available expression evaluators:
MASM - Microsoft Assembler expressions
C++ - C++ source expressions

Current expression evaluator: MASM - Microsoft Assembler expressions
0: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 10
base is 10
0:000> ? 1+10
Evaluate expression: 11 = 0000000b
0:000> n 16    ///切换到16进制
base is 16
0:000> ? 1+10
Evaluate expression: 17 = 00000011
0:000> ?? 1+10
int 11

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

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

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

0:006> n
base is 16
0:006> ? 0n10+1
Evaluate expression: 11 = 0000000b
0:006> ? 0t10+1
Evaluate expression: 9 = 00000009
0:006> ? 0y10+1
Evaluate expression: 3 = 00000003









  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值