Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何以编程方式引用WinDbg中的断点? 编程断点ID_Windbg - Fatal编程技术网

如何以编程方式引用WinDbg中的断点? 编程断点ID

如何以编程方式引用WinDbg中的断点? 编程断点ID,windbg,Windbg,docs.microsoft.com声称这是关于使用ID表达式设置断点的 断点ID不必显式引用。相反,你 可以使用解析为以下整数的数值表达式: 对应于断点ID。以指示表达式应 要解释为断点,请使用以下语法 b?[表达] 在此语法中,方括号是必需的,表达式表示解析为与断点ID对应的整数的任何数值表达式 这正是我想做的。然而,它似乎对我不起作用。 他们举的一个例子 b?[@$t0] 生成语法错误。我试过其他几种方法 0:000> r $t0 = 300 0:000> ? $t0 Eval

docs.microsoft.com声称这是关于使用ID表达式设置断点的

断点ID不必显式引用。相反,你 可以使用解析为以下整数的数值表达式: 对应于断点ID。以指示表达式应 要解释为断点,请使用以下语法

b?[表达]

在此语法中,方括号是必需的,表达式表示解析为与断点ID对应的整数的任何数值表达式

这正是我想做的。然而,它似乎对我不起作用。 他们举的一个例子

b?[@$t0]

生成语法错误。我试过其他几种方法

0:000> r $t0 = 300
0:000> ? $t0
Evaluate expression: 768 = 00000300
0:000> b?[@$t0]
        ^ Syntax error in 'b?[@$t0]'
0:000> b0
        ^ Syntax error in 'b0'
0:000> b
        ^ Syntax error in 'b'
0:000> bl?[@$t0]
        ^ Syntax error in 'bl?[@$t0]'
0:000> bl
 0 e 77c27d89     0001 (0001)  0:**** ntdll!LdrpDoDebuggerBreak+0x2b
0:000> bl0
 0 e 77c27d89     0001 (0001)  0:**** ntdll!LdrpDoDebuggerBreak+0x2b
0:000> bl300
0:000>
我真的不知道给出的例子是否可行,因为b和b0不起作用。然而,我似乎不能对其他使用硬编码值的命令使用类似的语法

我如何利用这个神话故事?特征


WinDbg 10.0.17134.12 X86

什么是正则表达式替换的p,u,a,表示 bp1。。bpn | ba1。。。班布。。包子

0:000> bl
 0 e 62e5f7a0     0001 (0001)  xxx
 1 e 62e5f7a2     0001 (0001)  xxx
 2 e 62e5f7a3     0001 (0001)  xxx
 3 e 62e5f7a5     0001 (0001)  xxx

0:000> bp[8-5]
breakpoint 3 exists, redefining
breakpoint 0 redefined
0:000>
还是更好的使用场景

0:000> bp .
0:000> bl
 0 e 77ac05a6     0001 (0001)  0:**** ntdll!LdrpDoDebuggerBreak+0x2c
0:000> r $t0 =0
0:000> bp[@$t0] ntdll!LdrpCompareServiceChecksum
breakpoint 0 exists, redefining
0:000> bl
 0 e 77a4b931     0001 (0001)  0:**** ntdll!LdrpCompareServiceChecksum
0:000> bp[@$t0] kernel32!CreateWaitableTimerExA
breakpoint 0 exists, redefining
0:000> bl
 0 e 77584202     0001 (0001)  0:**** kernel32!CreateWaitableTimerExA
0:000>

看起来您在windbg命令窗口中,而不是在脚本中。在这种情况下,您应该使用您参考的链接中所述的bu/bp命令窗口和脚本之间的区别是什么?语法是一样的,对吗?