zoukankan      html  css  js  c++  java
  • windbg学习?? 和 ?

    双问号(??)命令根据C++表达式规则来计算和显示表达式的值

    ??命令根据当前线程和进程上下文来对表达式中的符号进行求值

    所以用??后,就不用显式@@c++指定了

    如果要使用MASM表达式规则来为Expression 表达式的一部分进行求值,可以将这部分用圆括号括起来并在前面添加两个at符号( @@ )。


    (?) 命令可用于计算和显示一个表达式的值

    ?命令的输入和输出依赖于使用MASM表达式语法还是C++表达式语法

    具体来说就是.expr

    0:000> .expr 
    Current expression evaluator: MASM - Microsoft Assembler expressions

    如果使用MASM语法,输入和输出都依赖于当前的基数。要改变基数,使用n (Set Number Base)命令。

    一些字符串可能包含转义字符,如\n\"\r、 和\b,它们会被按字面的样子读取,而不会由求值器进行计算。如果字符串中的某个转义字符被求值器计算了,可能会出现求值错误

    0:000> as AliasName "c:\dir\name.txt"
    0:000> al
      Alias            Value  
     -------          ------- 
     AliasName        "c:\dir\name.txt" 
    0:000> ? $spat(${AliasName}, "*name*")
    Evaluate expression: 0 = 00000000
    0:000> ? $spat(@${AliasName}, "*name*")
    Evaluate expression: 1 = 00000001

    可以看到解决方式是:使用@"String" 语法

    再看个例子:

    0:000> ? $scmp("hgy", "hgy")
    Evaluate expression: 0 = 00000000
    0:000> ? $scmp("hgy\", "hgy\")
    Syntax error at '("hgy\", "hgy\")'
    0:000> ? $scmp(@"hgy\", @"hgy\")
    Evaluate expression: 0 = 00000000



  • 相关阅读:
    python zip()函数转置表,操作列
    python 集合 无序非重 容器的操作
    前行
    工作读书放松: 做其他事情 1.运动(如焦),2.闭眼睡觉休息(如蔡),3.选择读其他书
    心在哪时间在哪路在哪
    vi全部替换
    选择
    知识 代码 算法
    code algorithm
    绕过CND查找真是IP地址
  • 原文地址:https://www.cnblogs.com/hgy413/p/3693418.html
Copyright © 2011-2022 走看看