2011年12月8日

获取调试符号文件

摘要: 摘自:http://support.microsoft.com/kb/311503/zh-cn使用SymbolServer技术MicrosoftSymbolServer是使用随DebuggingToolsforWindows软件包一起提供的SymSrv技术(SymSrv.dll)构建的。SymSrv会生成本地符号高速缓存,以进行快速、自动的符号解析。使用SymbolServer就像在符号路径中使用相应的语法一样简单。通常,语法的格式如下:SRV*yourlocalsymbolfolder*http://msdl.microsoft.com/download/symbols其中yourlocal 阅读全文

posted @ 2011-12-08 22:34 FlowingCloud 阅读(537) 评论(0) 推荐(1) 编辑

2011年12月1日

HEAP: Free Heap block XXXX modified at XXXX after it was freed 的处理

摘要: HEAP:FreeHeapblockXXXXmodifiedatXXXXafteritwasfreed的处理环境:WindowsXPSP3,VC2008在开发过程中,偶尔会遇到程序提示HEAP异常的情况以下讨论限于Debug模式常见提示如下vc的输出窗口提示:翻译过来就是某个已经释放的堆空间被修改了,就是某块动态申请(malloc/new)的内存,在它被释放(free/delete)后,又被使用了。比如编写了如下的代码,就会有这个提示以上代码比较简单,可以很容易的看出问题出在哪里,当代码量比较大的时候,就不是一眼就能看出来了。在以上代码中,调试器断在了line31,那是一句申请空间的语句,当申 阅读全文

posted @ 2011-12-01 22:38 FlowingCloud 阅读(15040) 评论(0) 推荐(0) 编辑

2011年10月2日

VC6绿色版中英文双版

摘要: vc6 绿色版含中英文双版使用时先运行绿化.bat在运行 英文版.bat 或 中文版.bat 就可以得到英文版或者中文版了下载链接:http://download.csdn.net/detail/xkxjy/3653190 阅读全文

posted @ 2011-10-02 11:18 FlowingCloud 阅读(220) 评论(0) 推荐(0) 编辑

2011年6月10日

Visual C++ Runtime Error 调试

摘要: 程序偶尔会出现:Microsoft Visual C++ Runtime Library Runtime Error! Program: [APPPATH] Abnormal program termination同时带有红色叉叉的对话框。打开VC,附加对应的进程,在线程选项卡里查找类似MessageBox的字样,找到的那个就是弹出对话框的线程,右键,转到线程,查看调用堆栈,一般就能找到问题了根据刚才的函数调用堆栈,可以发现,这个框框是由abort间接产生的,根据查看abort的源码,可以发现,产生结果是有选项_WRITE_ABORT_MSG和_CALL_REPORTFAULT这两个标志决定的 阅读全文

posted @ 2011-06-10 23:41 FlowingCloud 阅读(1709) 评论(0) 推荐(0) 编辑

2011年4月1日

让程序崩溃时自动写minidump

摘要: 首先在合适的地方调用LPTOP_LEVEL_EXCEPTION_FILTER pOdk = SetUnhandledExceptionFilter(MyUnhandledExceptionFilter); MyUnhandledExceptionFilter的实现如下:LONG WINAPI MyUnhandledExceptionFilter( __in struct _EXCEPTION_POINTERS* ExceptionInfo ){ HANDLE hFile = CreateFile("mini.dmp", // name of the write GENERI 阅读全文

posted @ 2011-04-01 20:09 FlowingCloud 阅读(963) 评论(0) 推荐(0) 编辑

2011年2月28日

HEAP: Free Heap block XXXX modified at XXXX after it was freed

摘要: 开发过程中,有时候会遇到堆异常的情况这时,VS的调试输出窗口会提示:HEAP[MemTest.exe]: HEAP: Free Heap block 39b998 modified at 39b9c0 after it was freedWindows has triggered a breakpoint in MemTest.exe.This may be due to a corruption of the heap, which indicates a bug in MemTest.exe or any of the DLLs it has loaded.This may also be 阅读全文

posted @ 2011-02-28 12:46 FlowingCloud 阅读(883031) 评论(0) 推荐(0) 编辑

2011年2月26日

小心使用宏

摘要: 开发过程中,会经常使用宏定义,偶尔还会碰到重复定义的宏,有些时候会造成不良影响。见如下例子:Test.h#ifndef GUARD_TEST_H#define GUARD_TEST_Hclass CTest {public: CTest(); virtual ~CTest(); void Display(void); public: int x; #ifdef USE_BIG_ARRAY // 注意这里#pragma message("CTest use big") char szArray[8];#else#pragma message("CTest use s 阅读全文

posted @ 2011-02-26 13:11 FlowingCloud 阅读(250) 评论(0) 推荐(0) 编辑

2011年2月24日

磁盘操作 API

摘要: // 获取磁盘属性BOOL WINAPI GetVolumeInformation( __in LPCTSTR lpRootPathName, // 路径(带backslash),如"C:\" __out LPTSTR lpVolumeNameBuffer, // 磁盘名称Buffer __in DWORD nVolumeNameSize, // __out LPDWORD lpVolumeSerialNumber, // 格式化时系统分配的序列号 __out LPDWORD lpMaximumComponentLength, // 支持的文件名长度 __out LPDWO 阅读全文

posted @ 2011-02-24 21:09 FlowingCloud 阅读(233) 评论(0) 推荐(0) 编辑

2011年2月16日

常见文件、目录、路径操作函数

摘要: BOOL WINAPI DeleteFile(__in LPCTSTR lpFileName); // 删除一个文件int SHFileOperation(LPSHFILEOPSTRUCT lpFileOp); // 删除很多文件BOOL WINAPI RemoveDirectory(__in LPCTSTR lpPathName); // 删除一个空目录BOOL PathFileExists(LPCTSTR pszPath); // 判断文件(目录)是否存在BOOL PathIsDirectoryEmpty(LPCTSTR pszPath); // 判断一个目录是否为空BOOL PathRe 阅读全文

posted @ 2011-02-16 21:00 FlowingCloud 阅读(207) 评论(0) 推荐(0) 编辑

2011年1月22日

链表法页框的分配和去配

摘要: 采用链表的方法模拟分页式存储空间的分配和去配MemManager.h#pragma once#define MAX_MEM_LEN 512class CMemManager{private: struct MemItem { struct MemItem* prior; struct MemItem* next; bool bFree; int nPos; int nLen; int nOwner; MemItem(MemItem* pri, MemItem* nxt, bool bfree, int nPosition, int nLength) { prior = pri; next = 阅读全文

posted @ 2011-01-22 21:03 FlowingCloud 阅读(239) 评论(0) 推荐(0) 编辑

导航