您的位置:首页 > 其它

WinDBG调试断点命令详解

2015-01-11 20:20 603 查看
1.WinDbg下载:
  Install Debugging Tools for Windows 32-bit Version http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx   Install Debugging Tools for Windows 64-bit Versions http://www.microsoft.com/whdc/devtools/debugging/install64bit.mspx
2. 配置WinDbg:
     运行WinDbg->菜单->File->Symbol File Path->按照下面的方法设置_NT_SYMBOL_PATH变量:
在弹出的框中输入“C:\MyCodesSymbols; SRV*C:\MyLocalSymbols*http://msdl.microsoft.com/download/symbols”(按照这样设置,WinDbg将先从本地文件夹C:\MyCodesSymbols中查找Symbol,如果找不到,则自动从MS的Symbol Server上下载Symbols)。
另一种做法是从这个Symbol下载地址中http://www.microsoft.com/whdc/devtools/debugging/symbolpkg.mspx,下载相应操作系统所需要的完整的Symbol安装包,并进行安装,例如我将其安装在D:\WINDOWS\Symbols,在该框中输入“D:\WINDOWS\Symbols”。
(这里要注意下载的Symbols的版本一定要正确,在我的Win2003+Sp1上,我曾经以为安装Win2003+Sp2的Symbols可能会牛×点,但结果证明我错了,用WinDbg打开可执行文件时,提示“PDB symbol for mscorwks.dll not loaded;Defaulted to export symbols for ntdll.dll”的错误,
我有重新装上Win2003+Sp1的Symbols, 现在一切运行正常^_^)目录(D:\DevLib\SymbolLocal)不存在相应的Symbol file时,Windbg会自动从http://msdl.microsoft.com/download/symbols下载到本地目录

3.WinDBG调试断点
WinDBG调试断点命令详解: http://blog.csdn.net/WinGeek/ http://www.programlife.net/windbg-breakpoint-command-introduction.html

测试代码:
#include "windows.h"

int main()
{
HANDLE heap_handle = HeapCreate( NULL , 0x1000 , 0x2000 ) ;

char *buffer = (char*)HeapAlloc(heap_handle , NULL , 128) ;

char *buffer1 = (char*)HeapAlloc(heap_handle , NULL , 121) ;

HeapFree(heap_handle, 0 , buffer ) ;
HeapFree(heap_handle, 0 , buffer1 ) ;

HeapDestroy( heap_handle) ;
return 0 ;
}

设置断点
bu main

详细例子 http://www.cppblog.com/ay19880703/archive/2011/10/30/159364.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: