
DEBUG
DOOM
这个作者很懒,什么都没留下…
展开
-
vs2005常用调试快捷键
vs2005常用调试快捷键 ,开发起来更加的方面,虽然现在vs2008发布了,但vs2005还是一个主流,个人还是用vs2005,调试代码也多。 F6: 生成解决方案Ctrl+F6: 生成当前项目F7: 查看代码Shift+F7: 查看窗体设计器F5: 启动调试Ctrl+F5: 开始执行(不调试)Shift+F5: 停止调试Ctrl+Shift+F5: 重启调试F9: 切换断点Ctrl转载 2008-09-07 19:34:00 · 3298 阅读 · 0 评论 -
调试时设置断点后出现 此处无源代码可显示
现象:当前在原代码处设置断点,却在执行到此断点时“此处无源代码可显示”。原因:多线程环境,如果你的一个while循环在不停读一个变量,如果在本先线程内,两次运行到读这个变量之间的代码没有写这个变量,代码在编译时会被优化成直接从寄存器读取而不是内存。如果其他线程会改写此变量,当前线程却会一直读入未改写的变量值。由于是优化成读寄存器了,当前的代码处就无法设置断点了。奇怪的是单线程环境不会出错,照理原创 2010-01-25 00:22:00 · 1659 阅读 · 1 评论 -
递归时 运行时错误:Stack overflow
很有可能是递归太深了,Stack overflow。msdn里关于link的/stack帮助里明确写到"The default stack size is 1 MB"。项目- 属性- 配置属性- 链接器- 系统1.堆保留大小2.堆提交大小3.堆栈保留大小4.堆栈提交大小 可以设置得大一点。 /STACK参数 格式:/STACK:reserve[,com原创 2009-11-28 15:29:00 · 2368 阅读 · 0 评论 -
vs中“Stack around the variable was corrupted”的解决方案
把 project->配置属性->c/c++->代码生成->基本运行时检查 为 默认值 就不会报本异常。具体原因正在研究中。。。如果改为其他就有exception。exception有时是有道理的// step 1STRINGC2& STRINGC2::operator += (const char x){// if (x == 0) return *this;c转载 2009-11-26 18:35:00 · 6991 阅读 · 1 评论 -
程序还没开始运行就马上结束
现象:程序开始载入DLL,载入了几个后又马上开始卸载,然后马上结束,没有报任何错误。CWinApp还有其他全局的变量实例化完后,CWinApp的Init都还没运行。 原因:一般来说可能是这个程序还有实例运行在内存中,而且这个程序用到第3方的库,这个库只允许有一个实例运行。 解决方法:查看在运行的进程,看看有没有本程序的,结束它。原创 2010-01-11 21:04:00 · 1758 阅读 · 0 评论 -
充值判断不严谨
<br />和人人网的联运,有玩家连续刷钱。<br />这里涉及到3方,人人网,充值页面,游戏接口。<br />流程是:<br />充值页面调人人网接口扣人人豆。成功充值页面后调游戏接口加游戏内的钱。<br /> <br />现象:<br />游戏有加钱log,人人那边没有扣人人豆log。不是所有玩家都没有扣人人豆log。<br /> <br />游戏加钱这边log显示接口调用ip都是充值页面,可以排除玩家破解了直接调用游戏接口加钱。<br />可能情况:<br />1.充值页面代码错误。<br />2.人原创 2011-03-04 11:16:00 · 873 阅读 · 0 评论 -
PHP并发进入需互斥代码
<br />现象:与盛大对接充值出现错误。<br /> <br />充值接口行为:<br />1.查充值log是否已有相同单号<br />2.充值<br />3.插入充值log,log中单号字段是uniq的。<br /> <br />php可能并发进入1,都通过检查,然后两个一起充值成功,最后插入Log失败。<br /> <br />解决:<br />1.3和2对调,先3后2。<br />2.也可以用加锁实现,php不支持多线程,所以没有从语言层面支持锁。<br />http://code.google.c原创 2011-03-11 11:12:00 · 3412 阅读 · 0 评论 -
TextInput双向绑定ContainerController出错
TextInput控件除了输入数据,如果文本和一个数据双向绑定(一般是需要通过按钮改变文本,比如微调数字控件),在输入、选择文本、点击按钮改变文本等操作之后会出现错误。断在flashx.textLayout.container::ContainerController文件原创 2011-08-18 16:45:38 · 1386 阅读 · 0 评论 -
error C2275 将此类型用作表达式非法
C2275: “size_t”: 将此类型用作表达式非法,同时还导致一堆变量未定义的bug。将LuaXml从lua5.1移植到5.2的时候,使用VS2010编译LuaXml_lib.dll的时候碰到了这个错误,然而使用GCC能编译成功。群上一人遇到问题:在正确的程序中增加KdPrint()调用以输出调试信息,如下:////////////////////////原创 2012-03-24 00:46:11 · 49309 阅读 · 19 评论 -
VS debug 时找不到文件
Visual Studio IDE 下直接Debug的话, 工作目录是 Solution 所在目录。如果一个Solution 还有好多工程的话,在对应的工程目录下。而不是 Debug/bin 或者 Release/bin 什么的或exe所在目录。vs2010是 项目名/项目名 目录下,同目录的还有很多源文件。 如果直接运行debug编译的exe,则是exe所在目录。原创 2010-10-01 01:35:00 · 2197 阅读 · 0 评论 -
对话框窗口等出现enum IDD_ 未定义
原因:在其他类的头文件中包含了此头文件。解决方法:在对话框的头文件中包含 resource.h原创 2010-01-23 04:27:00 · 1215 阅读 · 0 评论 -
错误1 error C2248: “CObject::operator =”: 无法访问 private 成员(在“CObject”类中声明)
一般为给某对象赋值了一个指针。原创 2010-01-23 15:52:00 · 2492 阅读 · 0 评论 -
debuge和release的区别
看下面这段代码: char* c1 = "abc"; int i; i=1; int a[4]; { int j; j=2; }转载 2009-10-31 12:33:00 · 1924 阅读 · 1 评论 -
MSVC的调试技巧: Pseudoregisters
让我们从为什么写这篇文章开始. 一天, 一个学生让我帮助他解决一个调试问题. 为此我看着他单步进入代码, 当我看到如下代码: int test = GetLastError();他这样做事为了知道之前函数失败的错误代码. 每次他需要知道错误代码的时候都添加上面的代码行. 我建议他删除所有的代码行代之以调试”Watch”窗口当中添加”@ERR”. 他不知道这是什么, 在场的其他人也不知道这是转载 2008-09-07 19:24:00 · 708 阅读 · 0 评论 -
同一obj文件内发生链接错误 LINK2019
无法解析的外部符号。链接一般解析不了的是其他OBJ的符号解析不了。如果同一个从属于同一个OBJ的两个函数不能调用,就是定义函数的时候,没在函数前加类域。如AA::BB() 的AA::没加。原创 2008-09-17 15:50:00 · 1332 阅读 · 0 评论 -
error BK1506 : BSCMAKE
项目属性-c/c++- 浏览信息-启用浏览信息改成无。浏览信息用于 转到定义,转到声明等。原创 2008-09-25 14:21:00 · 1009 阅读 · 0 评论 -
warning C4482: 使用了非标准扩展: 限定名中使用了枚举
compiler warning (level 1) C4482warning description:使用了非标准扩展: 限定名中使用了枚举“enum”当引用类型内的枚举时,无需指定枚举的名称。文件范围的枚举定义相当于常量,也不需要限定名。example: C4482(MS Visual Studio)// C4482.cpp// compile with: /c /W1st转载 2008-10-07 16:57:00 · 13504 阅读 · 3 评论 -
Datatype misalignment
http://blog.youkuaiyun.com/lqk1985/archive/2008/10/23/3129976.aspx 对于读取数据流时(如网络或文件)要特别注意。比如PBYTE pData;//指向接收到的数据流int * pi = pData + 这次接收到数据流的大小 - 4;//指向接收到数据流的最后4位,可能客户端发过来的这个数据流最后4位是int,那样就是原创 2008-10-23 13:37:00 · 5660 阅读 · 1 评论 -
error C2362 goto与标签之间未初始化
goto 和标签之间有任何初始化的语句都不可以,除非用括号把它们括起来。如 goto end;int i;end:这样没关系。 goto end;int i =0;end:这样就不可以了。 goto end;{int i =0;}end:改成这样就可以了。 碰到一堆error的情况需要用goto的,其实可以用原创 2008-10-06 21:50:00 · 10678 阅读 · 2 评论 -
error LNK2005 默认库与其他库的使用冲突
错误 1 error LNK2005: _free 已经在 libcmtd.lib(dbgheap.obj) 中定义 MSVCRT.lib错误 2 error LNK2005: _malloc 已经在 libcmtd.lib(dbgheap.obj) 中定义 MSVCRT.lib ..... 如果有一堆的重定义错误发生在同一个lib中,而且跟它冲突的原创 2008-10-07 15:36:00 · 2195 阅读 · 0 评论 -
在静态库中使用MFC 、 在共享dll中使用mfc 两者间的转换
Windows mobile的应用程序把项目设置的从在静态库中使用MFC 改成 在共享dll中使用mfc 时,会运行不了。需要在部署的附加文件里面加入:msvcr80.dll|$(BINDIR)/$(INSTRUCTIONSET)/|%CSIDL_PROGRAM_FILES%/$(ProjectName)|0;atl80.dll|$(BINDIR)/$(INSTRUCTIONSET)/原创 2008-10-08 02:58:00 · 3454 阅读 · 1 评论 -
error LNK2019 第3方lib导出函数里有wchar参数时
项目属性-配置属性-c/c++-将wchar视为内置类型:否(/Zc:wchar_t-)如果这样不行。就把第3方lib提供的头文件里不能解析的函数的参数内的wchar改成 unsigned short。 C++, my almost favorite language. This language had good intentions, really. But this is原创 2008-10-08 15:03:00 · 1713 阅读 · 0 评论 -
error: stray ‘\357’
windows的BOM在linux下无法通过编译。解决方法:tail --bytes=+4 UTF8WithBom.txt > UTF8WithoutBom.txt原创 2012-04-24 17:05:13 · 2892 阅读 · 0 评论