在windows下编译mongodb c driver

mongodb引用到了openssl和bson库,因此先要安装这2个库, 还需要用到cmake生成vs项目, 这里cmake的安装就直接忽略了, 有需要的同学可自行百度。 1. 下载perl,  点击打开链接 2. 下载openssl 点击打开链接 3. 在openssl源码目录调用perl Configure VC-WIN32 生成配置 4.运行openssl\ms\do_ms.bat生...
阅读(1072) 评论(0)

怎样重建一个损坏的调用堆栈(callstack)

原文作者:Aaron Ballman 原文时间:2011年07月04日 原文地址:http://blog.aaronballman.com/2011/07/reconstructing-a-corrupted-stack-crawl/ 翻译:magictong 时间:2014年05月29日夜 后记:可惜原始的DUMP文件作者并没有上传         在我的日常...
阅读(262) 评论(0)

C/C++中手动获取调用堆栈

当我们的程序core掉之后,如果能获取到core时的函数调用堆栈将非常有利于定位问题。在Windows下可以使用SEH机制;在Linux下通过gdb使用coredump文件即可。 但有时候由于某些错误导致堆栈被破坏,发生拿不到调用堆栈的情况。 一些基础预备知识本文不再详述,可以参考以下文章: 函数调用栈的获取原理分析寄存器、函数调用与栈帧 需要知道的信息: 函数调用对...
阅读(294) 评论(0)

函数调用栈的获取原理分析

上一篇文章《在Linux程序中输出函数调用栈》,讲述了在Linux中如何利用backtrace获取调用栈,本篇文章主要介绍一下获取函数调用栈的原理,并给出相应的实现方式。 要了解调用栈,首先需要了解函数的调用过程,下面用一段代码作为例子: #include int add(int a, int b) { int result = 0; result = a + b...
阅读(924) 评论(2)

在Linux程序中输出函数调用栈

程序发生异常时,将函数的调用栈打印出来,可以大大提高定位效率。 Linux中提供了三个函数用来获取调用栈: /* 获取函数调用栈 */ int backtrace(void **buffer, int size); /* 将调用栈中的函数地址转化为函数名称 并返回一个字符串数组 */ char **backtrace_symbols(void *const *buffer, int ...
阅读(300) 评论(0)

windows下捕获dump

一般要捕获异常只需要两个函数:SetUnhandledExceptionFilter截获异常;MiniDumpWriteDump写dump文件。但是由于CRT函数可能会在内部调用SetUnhandledExceptionFilter(NULL),解除我们程序设置的异常处理,这导致我们的程序无法完整捕获崩溃。另外,还有一部分非异常的CRT错误,不属于SEH异常捕获的范畴,需要通过_set_inval...
阅读(301) 评论(0)

mysql_query函数中卡死

在上一个项目中碰到一个服务器无响应的问题,通过调试发现在执行mysql_query时没返回了,在等待某个内核事件,这个问题很难重现,一直没找到问题,今天看到论坛上也有朋友问到在mysql_query时无响应, 猜想是不是刚才在query的时候数据库连接断开了, 而在mysql_query中又没处理好这个问题,导致一直等待,先记录下来待验证,有兴趣的朋友可以一起讨论下...
阅读(570) 评论(0)

为什么在mysql_query()返回成功后,mysql_store_result()有时会返回NULL

成功调用mysql_query()后,mysql_store_result()能够返回NULL。出现该情况时,表明出现了下述条件之一: ·         出现了malloc()故障(例如,如果结果集过大)。 ·         无法读取数据(在连接上出现了错误)。 ·         查询未返回数据(例如,它是INSERT、UPDATE或DELETE)。 通过调用mysq...
阅读(612) 评论(0)

解决Eclipse调试真机时出现adb refused request: closed

最近用Eclipse调试我的红米的时候,总是出现adb refused request: closed,而且调试一直停在waiting for debugger不动了,在网上搜了一下,有的说用adb kill-server然后再adb start-server,还有的说重启Eclipse或者重启电脑,但是都不管用,试了好多次终于发现原来是驱动的问题,我把360手机助手卸载了之后(我用的是360手机...
阅读(613) 评论(0)

如何定位Android NDK开发中遇到的错误

原地址:http://www.csdn.net/article/2014-12-30/2823366-Locate-Android-NDK Android NDK是什么? Android NDK 是在SDK前面又加上了“原生”二字,即Native Development Kit,因此又被Google称为“NDK”。众所周知,Android程序运行在Dalvik虚拟机中,NDK允...
阅读(387) 评论(0)

android和iOS平台的崩溃捕获和收集

通过崩溃捕获和收集,可以收集到已发布应用(游戏)的异常,以便开发人员发现和修改bug,对于提高软件质量有着极大的帮助。本文介绍了iOS和android平台下崩溃捕获和收集的原理及步骤,不过如果是个人开发应用或者没有特殊限制的话,就不用往下看了,直接把友盟sdk(一个统计分析sdk)加入到工程中就万事大吉了,其中的错误日志功能完全能够满足需求,而且不需要额外准备接收服务器。  但是如果你对其原理更感...
阅读(382) 评论(0)

关于使用libcurl的注意事项

ibcurl与CLOSE_WAIT 转载自:http://blog.sunshow.net/2010/03/libcurl-and-close-wait/ 调用libcurl下载,然后使用netstat查看发现有大量的TCP连接保持在CLOSE_WAIT状态 查看libcurl的文档说明,有这样一个选项: CURLOPT_FORBID_REUSE Pass a lon...
阅读(2213) 评论(0)

C++对象布局及多态实现

C++对象布局方式...
阅读(417) 评论(0)

C++0x语言新特性一览

原文请见http://en.wikipedia.org/wiki/C%2B%2B0x 。  Rvalue reference and move semantics右值引用与转移语义在标准C++语言中,临时量(术语为右值,因其出现在赋值表达式的右边)可以被传给函数,但只能被接受为const &类型。这样函数便无法区分传给const &的是真实的右值还是常规变量。而且,由于类型为const &,函数也无法改变所传对象的值。C++0x将增加一种名为右值引用的新的引用类型,记作typename &&。...
阅读(490) 评论(0)

C++内存管理之一(检测内存泄露)

  C++程序的复杂性很大一部分在于他的内存管理,没有C#那样的垃圾回收机制,内存管理对初学者来说很困难。经常会出现内存泄露的情况。那么我们写程序如 何避免内存泄露呢?首先我们需要知道程序有没有内存泄露,然后定位到底是哪行代码出现内存泄露了,这样才能将其修复。  本文描述了如何检测内存泄露。最主要的是纯C,C++的程序如何检测内存泄露。  现 在有很多专业的检测工具,比如比较有名的BoundsCheck, 但是这类工具也有他的缺点,我认为首先Bound...
阅读(423) 评论(0)

SkinMagic使用方法总结--SetSingleDialogSkin断言失败

      以前一直没有接触过皮肤库这玩意, 最近做一个im项目需要用到皮肤库了,  我们公司用的是SkinMagic,  关于SkinMagic的安装和使用方法, 网上有很多教程, 在SkinMagicLib.h头文件里介绍也很详细, 这里就不重复了, 主要描述一下我在使用SkinMagic碰到过的问题. 刚开始使用SkinMagic库时, 觉得它很简单(基本使用确实是很简单的, -_-),  一眼就扫完了它所包含的几个常用函数:        InitSkinMagi...
阅读(1938) 评论(1)

HICON与HBITMAP互换

第一种方法: 使用Bitmap类      Bitmap类可以从HICON和HBITMAP创建, 它提供的方法有:      Bitmap::FromHBITMAP,       Bitmap::FromHICON,      Bitmap::FromBITMAPINFO,      Bitmap::FromResource,      Bitmap::FromStream,      Bitmap::GetHB...
阅读(3334) 评论(3)

获取位图尺寸

从 CBitmap类对象中获取位图尺寸我们可用GetBitmap()函数 。  // 变量bitmap是一个CBitmap类对象BITMAP bm;bitmap.GetBitmap( &bm );bmWidth = bm.bmWidth;bmHeight = bm.bmHeight;如果你有一个 HBITMAP句柄,你可以将它附加到一个CBitmap类对象上,再用上述方法获取尺寸// 变量hBmp是一个HBITMAP句柄BITMAP bm;::GetObject( hBmp, sizeof( bm ), ...
阅读(599) 评论(0)

VC加载jpeg, png图片的方法

       在VC中我们可以直接利用LoadIcon, LoadBitmap或LoadImage来加载bmp和ico图片, 但是加载jpg和png等格式就没有这么方便了.  其实我们可以通过两个系统提供的两个com接口IPicture和IStream类实现类似于VB的Picture控件, 具体的用法请查看msdn或google下, 下面代码是我以前在网上找的一个例子, 主要用到了几个API函数: AfxGetResourceHandle, FindResource, SizeofResourc...
阅读(4373) 评论(0)

Ubuntu 10.04 用Wine完美运行QQ 2009

 话说“麻花藤”LinuxQQ不是一般的Bug,在Ubuntu10.04下窗口最大化也不行,最恼火的是Linuxqq在Ubuntu 10.04下活不过半分钟!! 当然,Ubuntu自带的那个 Empathy也还是可用的(PS:你要在高级设置里把版本调节为2008)。。当然,今天是告诉兄弟们如何在Ubuntu下用Wine来运行Windows版的QQ。为啥昵?不是哥蛋疼不过,因为经过测试发现Wine模拟的QQ还是比较稳定的,应该说比Linu...
阅读(858) 评论(0)
64条 共4页1 2 3 4 下一页 尾页
    个人资料
    • 访问:102371次
    • 积分:1358
    • 等级:
    • 排名:千里之外
    • 原创:27篇
    • 转载:37篇
    • 译文:0篇
    • 评论:23条
    最新评论