之前想写一篇用windbg脚本调试的东西,但是一直比较懒,懒得动手,懒得想例子,把时间都放在了游戏上面,所以想法虽好一直没有实施...
这次写一个非常简单的利用windbg脚本进行动态调试的小文,博君一笑.
// Windbgscript.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
using namespace std;
int ret100()
{
[B]int x = 2;[/B] //2-3
x*=33;
++x;
return x;
}
int add(int x, int y)
{
[B]x = 0;[/B] //多余的
return x+y;
}
int _tmain(int argc, _TCHAR* argv[])
{
int x = 100;
int y = add( x, ret100());
cout << y;
getchar();
return 0;
}
上面代码都非常简单,ret100里面做了一个非常简单的操作,我希望它的返回值是100,但现在的返回值是67, 当然改法太多了,我这里假设是初始化时 x 应该初始化为3.
同样add里面也有问题,就是对于参数x赋值0,认为它是一条多余的操作, 因为我们的目的是返回x+y的结果.
现在执行结果是: