调试 内存查看StringCchCopy的运行前后
2013-07-14 18:54
246 查看
// ConsoleApplication1.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" int _tmain(int argc, _TCHAR* argv[]) { _wsetlocale(LC_ALL, L"chs"); //支持中文本地化 TCHAR szBuffer[10] = { TEXT('-'),TEXT('-'),TEXT('-'),TEXT('-'),TEXT('-'), TEXT('-'),TEXT('-'),TEXT('-'),TEXT('-'),'\0'}; LPVOID lpMsgBuf; HRESULT err = StringCchCopy(szBuffer,_countof(szBuffer),_T("0123456789")); //将源字符缓冲区复制到目标字符缓冲区szBuffer FormatMessage( //windows提供的,将错误代码转换为相应的文本描述 FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ALLOCATE_BUFFER, NULL, err, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR) &lpMsgBuf, 0, NULL); wprintf(L"%s",lpMsgBuf); //打印错误的文本描述 getwchar(); return 0; }
断点到StringCchCopy函数运行之前,调试
查看监视
![](http://images.cnitblog.com/blog/427776/201307/14184742-94f39b3c00b4413f916c1ac8f926a0b9.png)
得到szBuffer里的数据正常,和它的内存地址
然后查看它的内存地址
![](http://images.cnitblog.com/blog/427776/201307/14184901-53e406ecac5b4550badde6d406054c3e.jpg)
然后执行下一步
![](http://images.cnitblog.com/blog/427776/201307/14185050-490824dab5854b13b069466a4b21e3e5.png)
![](http://images.cnitblog.com/blog/427776/201307/14185100-b3e541d52f0e43eba4cb5c475d3459ae.png)
发现传入szBuffer内容最后一位被截断,StringCchCopy函数,
返回给err HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER) : 传递给系统调用的数据区域太小。 HRESULT
相关文章推荐
- 调试 内存查看StringCchCopy的运行前后
- vs2013断点调试并查看内存方法
- linux 中查看某个单进程程序运行所占内存(linux proc status statm详解)
- 关于调试,查看内存
- VS 2010 中调试C++项目时无法查看调试内存窗口
- Xcode调试之View Memory(查看内存)
- fabric调试:go pprof查看内存
- [OpenGL调试]保存并查看内存中的数据图像
- BAT脚本查看相应程序运行时内存使用
- Vc 6.0 调试技巧,可以查看程序在内存的分布情况
- android查看程序运行内存
- 查看本机jvm运行内存最大最小值
- 如何查看应用运行时虚拟机内存使用情况
- 在VS中调试C#程序,如何查看内存、寄存器、反汇编
- 观侯捷老师new和delete以及malloc在vc当中调试模式和运行下分配内存
- 乐视手机查看运行内存方法、EUI(Eco User Interface)乐视系统查看手机运行内存方法
- tomcat调试运行(查看异常信息)
- Java实现查看Web部署在Linux所在机的CPU、内存、I/O运行情况
- Android使用adb查看当前设备运行进程CPU内存等资源的使用情况
- Bochs调试之查看内存