20 Kevin_qing

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 7w+

c++ 服务器程序bug dump

调试服务器程序时最怕遇到需要运行10天半个月才遇到一次的bug,这种bug很难还原现场,同时还要时刻注意服务器是否挂掉。本文给出一个解决方法可以极大的提高调试效率。使用本文方法可以在断言失败时自动dump,可用于还原bug环境进行调试。另外崩溃时也会自动记录crash dump。断言函数bool xassert(bool r){ if(!r) __a

2014-12-02 14:48:54

从深度缓冲里重建位置信息

参考资料http://blog.csdn.net/shadow_gz/article/details/6394827http://www.klayge.org/wiki/index.php?title=%E5%BB%B6%E8%BF%9F%E6%B8%B2%E6%9F%93 从project space转换到view space下 需要的东西,1 . linear z=

2012-08-17 20:24:54

遇到的一个诡异bug

碰撞检测使用的射线与线段求交点。使用中发现偶尔会出现穿透的情况,找了很久终于找到原因。 其原因在于求出的交点坐标,由于浮点运算的不精确性,会有小数点后5位的微小偏移。造成交点坐标与水平或垂直的检测线段判断出错(认为交点不在线段上),从而穿透阻挡物。 修改点在直线上的判断条件解决问题

2012-06-11 15:15:04

设备io的(同步异步io,iocp/epool等),以及iocp 和socket操作(求批判|讨论)

iocp/epool这类东西是用于与设备通信时获取通知。 这里的设备在访问硬盘上的文件就是和文件系统驱动打交道,访问socket时则是和网络驱动(软件->硬件)打交道。 os驱动运行模式一般是发送命令,等待命令完成,获取结果。 层次类似这样user-----------------------kernel driver driver下面可以挂很多个,其

2012-03-17 14:58:25

算法[草稿]

新算法如下。1.投影圆心至直线2.计算投影点是否在l1,l2之间,在的话用点到直线距离==r计算碰撞点,时间3.如果投影点不在l1/l2之间,计算其与l1,l2距离。取d=距离较小的一个,判断d和r大小。4.如果d算法思路。圆围绕线段移动一圈,圆心轨迹是一个胶囊体。因此实际问题等同于点和胶囊相交判断。(2个圆+一个方块)此算法可对任意形状多边形作碰撞检测

2012-03-11 23:45:02

线程安全的高效单向链表

作为非常常用的数据结构,单项链表具有表头小,从头结点添加/删除速度快的优点.常用于无限制长度的数据缓存处理。比如iocp工作线程缓存输入数据,逻辑线程取缓冲数据做处理后发送到输出缓冲。这里的输入缓冲和输出缓冲就可以用单链表实现。struct SList{SList *next;}; SListPush(SList* head,Slist* p){p=head->ne

2012-03-11 13:36:56

通用C++内存池代码

原理在这里http://blog.csdn.net/kevin_qing/article/details/608891以前代码找不到了,重写一次。 加上了一些简单的错误检测代码。帮助调试内存问题。 初步代码,还未仔细检查,有bug请留言。  //type and macro#include //debug 信息const bool DebugQMem=1;

2012-03-10 21:33:16

实时多人在线游戏研究(同步和延迟)

本文讨论实时多人在线游戏的服务器和客户端技术。实时多人在线游戏主要包括2类,FPS(quake系列,UT系列,CF等),ACT(DNF,龙之谷这类) 其共同特点是需要用户操作尽快的得到体现。并且所有客户端的结果要一致。同一世界玩家数量较少(这是有原因的,下面讨论),有较真实的物理效果模拟。 通用的C/S做法:A. 客户端采样输入数据->Server处理数据->分发结果。

2012-03-10 15:54:27

d3d transform matrix 和 vs 的一点优化

1.顶点坐标变换按照 v.pos*world*view*proj2.光照可以在model,world或者view space计算,需把顶点坐标和light pos变换到同一坐标系下,再计算光照3.env map和光照类似,变换的是摄像机位置。4.软件计算的话,最好变换

2011-09-09 20:55:27

魔兽争霸地貌拼接方式

先看图片http://hi.csdn.net/attachment/201109/7/979141_1315404194Eh6m.jpg 每个块的图片由4周围4个脚的地貌计算得出。算法如下。1.地貌编号0-5,低编码的可以被高编码的覆盖。2.每种地形图片中

2011-09-07 22:17:48

d3d9中绘制2d元素时提高效率

比如绘制一个rect,通常方法vertexbuffer->lock();fillRectVertex();vertexbuffer->unlock();setTexture();drawprimitive(); 绘制多个2d元素时效率很低。其原因是lo

2011-08-25 13:25:53

栈式虚拟机中间代码编译为x86指令

栈式虚拟机比较好实现,同时指令也较为简单,类似risc 假设虚拟机指令push i ;//立即数入栈add  //栈里面最近2元素相加,pop 2后,结果压栈call  //调用栈顶id指向的函数 //脚本rotate(0,0,20+time())

2011-08-24 15:30:54

c++类的编译器实现方式描述

貌似有些同学还不太明白这个,我试着用c代码描述c++类相关的一些实现方式。 设类abc,bc继承于a,都有个虚函数f(),析构函数为虚c++代码//---------A struct a{ a(){ } void f(){printf("cla

2011-08-24 15:04:21

raw input 使用上的一些陷阱

rawinput获取数据的2个api getrawinputdata()和getrawinputbuffer()msdn并未说明什么情况下使用哪种api,而一般来说getrawinputdata()就可以获取到数据的,想当然的我们就会认为只需要使用其中一种就可以。但是实际测试说明光使用getrawinputdata()是会丢失输入数据的。 做一个简单的测试:第一步:WM_INP

2011-07-30 22:51:31

Redhat Linux 9 with pam_radius-1.3.16 bug?

最近试验了一下radius的pam插件.发现在rh9.0下,验证时无响应。server 用saslauthd -a pam然后用testsaslauth -u test -p sss -s testradius后,testsaslauth一直无响应。google发现似乎只有rh9有这个现象。经debug后发现,死在initialize这个函数中读取配置的循环。 

2006-04-29 13:18:00

mysql C API statment and bind 执行查询

#include #include #include typedef std::string string;struct mysql_parm{ string host; string user; string password; string database; string unixsock;};class DBSTMT;class DBMysql;class DBSTMT{ DB

2006-03-21 13:45:00

pthread 学习

编译参数1、-pthread和-lpthread是不同的,如果你自己的代码里面用到了某些多线程相关的结构(最常见的是errno),而不是仅仅简单的调用了几个pthread函数,你就可能不能单纯用-lpthread。 2、只要你系统的gcc里有-pthread选项,就不要用-lpthread,除非你清楚地知道在这个系统里-pthread意味着什么。很多系统里-pthread等同于“-D_REEN

2006-03-11 17:51:00

RHLinux9 升级2.6.15

下载src,编译.选择了ext3编译入内核 不知道什么原因,编译时GCC coredump了无数次...终于在第n次继续编译后成功了.安装好kernel后启动....先报usb 一堆什么错误,没关系,俺的键盘是ps/2的,用sshe也不需要鼠标...忽略...继续下去,新硬件只找到了我的ps/2鼠标然后在启动网卡时出现错误.....大概是说网卡设备不存在.但是我

2006-03-11 00:22:00

C++模板来实现一个通用的内存池.

从最简单的入手1.实现一个固定大小的allocator//分配固定大小内存块的模板类,内部缓存算法自己实现了,//我用的是预分配+回收cache链//即分配时先检查回收链有无数据,无的话每次分配n*size个块,然后返回其中一个,直到该块用完后继续分配//释放时直接加入回收链即可//好处是速度够块,但是浪费空间可能就比较大了template class Fix_All

2006-02-25 00:11:00

win32界面

界面苦手啊......整理点资料 AdjustWindowRectEx可以根据给定的client RC算出需要建的窗口大小.WTL 的subclasswindow用来子类化窗口主窗口为POPUP的时,需要自己处理WM_CLOSE来destorywindow 后postquitmessage(WTL下),否则窗口消失了,但进程还在,比较奇怪.  

2006-02-24 23:47:00

查看更多

勋章 我的勋章
  • 红花
    红花
    子板块内专家分月排名榜第一
  • 黄花
    黄花
    子板块内专家分月排名榜第二
  • 金牌
    金牌
    总榜技术专家分月排行榜第一
  • 铜牌
    铜牌
    总榜技术专家分月排行榜第三