上手程序----onfidentialPage2接下来用一个简单的例子演示一下Windbg的基本使用。下面这段代码的目的是把字符串"6969,3p3p"中的所有3都修改为4。#include""#include""char*getcharBuffer(){return"6969,3p3p";}voidchangeto4p(char*buffer){while(*buffer){if(*buffer=='3'){*buffer='4';}buffer++;}}int_tmain(intargc,_TCHAR*argv[]){printf("%s\n","Anykeycontinue...");getchar();char*str=getcharBuffer();changeto4p(str);printf("%s",str);return0;}这段代码会导致崩溃。。,一起用Windbg来看看上述对话框的具体含义是什么。在启动Windbg调试以前,首先把程序对应的PDB文件放到一个指定的文件夹I厦?程序的EXE叫做crashscreen-,把编译时候生成的crashscreen-:\PDB文件夹。同时把程序的主CPP文件拷贝到C:\SRC文件夹。接下来启动Windbg。像用VisualStudio调试程序一样,我们需要在调试器中运行对应的EXE。所以在Windbg的主窗口中,使用File→OpenExecutable菜单找到crashscreen-,然后打开。onfidentialPage4Windbg不会让目标进程立刻开始运行。相反,Windbg这时会停下来,让用户有机会对进程启动过程进行排错,或者进行一些准备工作,比如设定断点,。。下面的0:000>提示符后面是用户输入命令的地方。输入命令g,让程序继续运行,。,程序已经开始运行了,在等待用户的输入。如果要用调试器让程序暂停接受检查,可以在Windbg中用Ctrl+Break快捷键,或者用Debug→Break命令完成,。。要通过函数名设定断点,首先要让Windbg加载对应的PDB文件。通过Windbg的File→SymbolFilePath菜单可以设定PDB文件的搜索路径。通过这个菜单我们把路径设定到C:\PDB。设定好了后,接下来可以用x命令找到程序中getcharBuffer和changeto4p函数的二进制入口地址。找到地址后,就可以用bp命令在这两个地址上设定断点了,。,继续用g命令恢复程序的执行,输入任一键后,会看到程序在getcharBuffe断点上停下,。
Windbg使用介绍 来自淘豆网m.daumloan.com转载请标明出处.