
程序调试经验
文章平均质量分 57
tkp2014
这个作者很懒,什么都没留下…
展开
-
为什么会出现__imp____glutInitWithExit@12和无法解析的外部符号?
在编写OpenGL程序时,当使用到glut库时,编译能够成功,但是在执行的时候,就会 出现__imp____glutInitWithExit@12和无法解析的外部符号和__imp____glutCreateWindowWithExit@8无法解析。 这个问题的解决:在#include 之前(一定要在其前)加上下列代码: #ifndef GLUT_DISABLE_ATEXIT_H转载 2014-10-27 22:16:02 · 533 阅读 · 0 评论 -
VS项目属性的一些配置项总结
首先,解决方案和项目文件夹包含关系(c++项目)VS解决方案和各个项目文件夹以及解决方案和各个项目对应的配置文件包含关系。假设新建一个项目ssyy,解决方案起名fangan,注意解决方案包括项目,此时生成的最外层目录为fangan代表整个解决方案的内容都在这个文件夹内。在这个fangan文件夹内包含有fangan.sln的解决方案配置文件和一个ssyy文件夹,ssyy文转载 2014-12-13 17:05:23 · 739 阅读 · 0 评论 -
LINK: fatal error LNK1123:转换到 COFF期间失败: 文件无效或损坏
LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏解决方案 第一步:将 项目——项目属性——配置属性——连接器——清单文件——嵌入清单 “是”改为“否”若还不能解决问题进入第二步。第二步:查看计算机是否为64bit操作系统,如是,继续如下操作 (1)查找是否有两个cvtres转载 2014-12-12 15:22:08 · 946 阅读 · 0 评论 -
GDB调试
熟练使用gdb是一个linux下开发人员必备的一项技能,我们由浅入深的学习一下gdb的强大功能。一.gdb简单介绍名称 gdb - GNU 调试器提要 gdb [-help] [-nx] [-q] [-batch] [-cd=dir] [-f] [-b bps] [-tty=dev] [-s symfile] [-e pro转载 2015-03-22 20:34:22 · 373 阅读 · 0 评论 -
宏的高级使用--##,__VA_ARGS__, __FILE__, __FUNCTION__等
先说一下本文中会提到的内容:##,__VA_ARGS__, __FILE__, __LINE__ , __FUNCTION__等宏变量:先举一个例子,会用到上面这些宏:[cpp] view plaincopy#define myprintf(...) printk("[lch]:File:%s, Line:%d, Function:%s,转载 2015-06-28 23:12:31 · 430 阅读 · 0 评论 -
程序调试技巧
前言我们在写程序的时候,总是或多或少会加入一些printf之类的语句用于输出调试信息,但是printf语句有个很不方便的地方就是当我们需要发布程序的时候要一条一条的把这些语句删除,而一旦需要再次调试的时候,这些语句又不得不一条条的加上,这给我们带来了很大的不便,浪费了我们很多的时间,也造成了调试的效率低下。所以,很多人会选择使用宏定义的方式来输出调试语句。比如,定义一个宏开原创 2015-06-28 22:33:27 · 396 阅读 · 0 评论 -
vs2010如何引用相对路径
在用vs2010做项目时,避免不了要引用外部类库lib,头文件等,这时就需要在项目属性中设置外部相关文件的路径。主要有以下三种方法。工具/原料假设有如下项目:----项目名字为:mytest----外部路头径为:d:\mytest\public\include----外部库路径为:d\mytest\public\lib转载 2015-06-13 21:25:30 · 1414 阅读 · 0 评论 -
vs2008、vs2010中查看变量在内存中的内容的方法
在vs中调试程序的,有时候需要设置断点看某个变量的内容,如果变量是一个指针、数组或结构体,则可以通过查看该变量所指向的内存来看变量的内容。1、在vs2008中打开内存窗口在vs2008调试界面中,点击菜单【调试】->【窗口】->【内存】->【内存1】/【内存2】/【内存3】/【内存4】即可打开内存窗口。2、找到要查看的变量的内存地址在VS调试界面中,右键点击要查看内转载 2015-08-13 15:05:35 · 2657 阅读 · 0 评论 -
error C2275 将此类型用作表达式非法
C2275: “size_t”: 将此类型用作表达式非法,同时还导致一堆变量未定义的bug。将LuaXml从lua5.1移植到5.2的时候,使用VS2010编译LuaXml_lib.dll的时候碰到了这个错误,然而使用GCC能编译成功。群上一人遇到问题:在正确的程序中增加KdPrint()调用以输出调试信息,如下://////////////转载 2015-07-24 22:37:01 · 6597 阅读 · 0 评论 -
Windows/Visual C++创建新项目选择了错误项目类型
Windows/Visual C++创建新项目选择了错误的项目类型,例如,开发人员可能创建了一个新的Win32应用程序项目,但创建的入口点函数是main。生成应用程序时,会报告一个链接错误,因为Win32应用程序项目会设置 /SUBSYSTEM:WINDOWS 链接器开关,但WinMain 或 wWinMain 函数并不存在。解决办法如下:1> 把 main 函数改为 WinM原创 2014-12-29 15:26:43 · 880 阅读 · 0 评论 -
error MSB4044: 未给任务“CppClean”的必需参数“FoldersToClean”赋值
在VS2010中调试程序出现错误:(1)error MSB4044: 未给任务“CppClean”的必需参数“FoldersToClean”赋值。(2)The "CppClean" task was not given a value for the required parameter "FoldersToClean"。解决办法:工程 - 属性 - 配置属性 - 常规 -原创 2014-12-12 11:16:42 · 5388 阅读 · 0 评论 -
在 Visual Studio 中调试多线程应用程序
原文出处:http://msdn.microsoft.com/zh-cn/library/ts553s52.aspx?cs-save-lang=1&cs-lang=cpp#code-snippet-2转载 2014-12-06 13:43:09 · 868 阅读 · 0 评论 -
在VS2010下的CUDA程序中出现异常error : identifier “atomicAdd” is undefined
在VS2010下的CUDA程序中出现错误error : identifier “atomicAdd” is undefined 今天写代码的时候用到了原子操作,也就是atomicAdd操作,但是发现编译的时候会出现问题,报的错误是:error : identifier “atomicAdd” is undefined。经过一番查找之后,发现问题出在默认的设置里,计算能转载 2014-10-30 23:30:59 · 1571 阅读 · 0 评论 -
Visual Studio原生开发的10个调试技巧
最近碰巧读了Ivan Shcherbakov写的一篇文章,《11个强大的Visual Studio调试小技巧》。这篇文章只介绍了一些有关Visual Studio的基本调试技巧,但是还有其他一些同样有用的技巧。我整理了一些Visual Studio(至少在VS 2008下)原生开发的调试技巧。(如果你是工作在托管代码下,调试器会有更多的特性,在CodeProject中有介绍它们的文章),下面是转载 2014-10-30 19:03:43 · 517 阅读 · 0 评论 -
Visual Studio原生开发的20条调试技巧
我的上篇文章《Vistual Studio原生开发的10个调试技巧》引发了很多人的兴趣,所以我决定跟大家分享更多的调试技巧。接下来你又能看到一些对于原生应用程序的很有帮助的调试技巧(接着上一篇文章来编号)。这些技巧需要应用在Vistual Studio 2005 或者更新的版本中(当然也有一些适用于旧版本)。如果你能阅读本文中推荐的一些相关文章,就可以知道每一个技巧的更多信息。11.转载 2014-10-30 19:05:36 · 730 阅读 · 0 评论 -
调试之堆栈的使用
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处。转载 2014-10-15 22:38:38 · 657 阅读 · 0 评论 -
Visual C++下的一些程序调试和开发技巧
自己平时收集的一些技巧与心得,这里分享出来,普及一下知识。 1.如何在Release状态下进行调试 Project->Setting=>ProjectSetting对话框,选择Release状态。C/C++标签中的Category选General,Optimizations选Disable(Debug),Debut info选Program Database。在Link转载 2014-11-03 19:28:17 · 431 阅读 · 0 评论 -
vs2010中的ipch和sdf文件
visual studio 2010 中新建一个项目会同时建立一个ipch目录与sdf文件,即使你删掉它,再次打开工程时还是会重新建立。动辄30、50M的容量让我们心里很不爽。其实这是2010的一个新功能,与智能提示,错误提示,代码恢复、团队本地仓库等等息息相关的东西。如果大家觉得很不爽可以关掉它。Tools —— Options —— Text Editor —— C/C++ —— Advanc原创 2014-11-25 12:25:41 · 768 阅读 · 0 评论 -
VS2010中C++创建DLL图示
一、DLL的创建 创建项目: Win32->Win32项目,名称:MyDLL选择DLL (D) ->完成1、新建头文件testdll.htestdll.h代码如下:#ifndef TestDll_H_#define TestDll_H_#ifdef MYLIBDLL#define MYLIBDLL ex转载 2014-11-27 12:44:42 · 522 阅读 · 0 评论 -
VS2010断点调试技巧
设置断点在如下图中的红色圆点处设置断点,红色圆点表示已经在这行设置断点。快捷键F9。启动调试按F5或者点击左边红框中的按钮。右边框是开始执行(不调试)Ctrl+F5。调试工具栏:下面是工具栏中对应的名称和快捷键。 在调试过程中F5是执行到下一个断点。F11是逐语句,在执行到下图中的断点时,按F11会转载 2014-12-21 15:13:22 · 605 阅读 · 0 评论 -
内存错误(C/C++)
错误类型症状示例 内存泄露进程随时间变长,运行的越来越慢,最终,由于内存不足,命令和系统调用失效 void memoryLeak(){ int* ip = new int[1000]; return; //bug! Not free ip.}使用不匹配的分配和释放命令原创 2015-10-11 15:27:29 · 312 阅读 · 0 评论