尝试将断点设置为类成员,但是我收到语法错误或错误,说“#34;无法解析"。
目标变量是类指针xyz的abc。
0:000> ??@@c++(xyz->abc)
short 0n812
0:000> dt xyz
Local var @ rbx Type Prop*
+0x000 __VFN_table : 0x00007ffd`b9229510
+0x058 abc : 0n0147
尝试:
0:000> bu ***!***::function+0x56 ".if (@@c++(xyz->abc))==147) {.echo 'hit'} .else {gc}"
^ Syntax error in '.if ....'
我想在pProp-> ydu值等于147时设置断点。
答案 0 :(得分:0)
来源
NULL
使用vs 2017社区cmd提示编译
#include <iostream>
using namespace std;
class Rectangle {
int width, height;
public:
Rectangle (int x ,int y) : width(x) , height(y) {}
int area (void) {return (width*height);}
};
void CalcArea(int i,int j,Rectangle *rect) {
cout << "Area for Rect("<<i<<","<<j<<") = "<<rect->area()<< endl;
}
int main () {
int i,j;
for(i=10,j=10; (i<100 && j<100); i+=5,j+=10){
Rectangle rect (i,j);
CalcArea(i,j,&rect);
}
return 0;
}
已执行
cl /EHsc /W4 /analyze /Zi /Od classy.cpp /link /release
在windbg中加载并设置条件断点并运行
classy.exe
Area for Rect(10,10) = 100
Area for Rect(15,20) = 300
Area for Rect(20,30) = 600
Area for Rect(25,40) = 1000
Area for Rect(30,50) = 1500
Area for Rect(35,60) = 2100
Area for Rect(40,70) = 2800
Area for Rect(45,80) = 3600
Area for Rect(50,90) = 4500