2014年1月26日

C++对象模型(五):The Semantics of Data Data语义学

摘要: 本文是《Inside the C++ Object Model》第三章的读书笔记。主要讨论C++ data member的内存布局。这里的data member 包含了class有虚函数时的vptr和vtable的布局情况。1. 开头几个小问题 1. 首先回答一个问题: 一个空类,sizeof是多少?答案是1。因为编译器会生成一个隐晦的1bytes,用于区分,当该类多个对象时,各个对象都能在内存分配唯一地址。 2. 还有虚函数表的指针vptr,可能在类的开始,也可能在类的结尾。通常是类的结尾。(注:比较新的VC++和GCC都是在开头。不知道是否所有的版本都是)。 3. 关于成员变量的内存对齐. 阅读全文

posted @ 2014-01-26 21:29 anzhsoft 阅读(265) 评论(0) 推荐(0) 编辑

2014年1月25日

Linux Debugging(三): C++函数调用的参数传递方法总结(通过gdb+反汇编)

摘要: 上一篇文章《Linux Debugging:使用反汇编理解C++程序函数调用栈》没想到能得到那么多人的喜爱,因为那篇文章是以32位的C++普通函数(非类成员函数)为例子写的,因此只是一个特殊的例子。本文将函数调用时的参数传递方法进行一下总结。总结将为C++普通函数、类成员函数;32位和64位进行总结。 建议还是读一下Linux Debugging:使用反汇编理解C++程序函数调用栈,这样本文的结论将非常容易理解,将非常好的为CoreDump分析开一个好头。而且,它也是32位C++ 普通函数的调用的比较好的例子,毕竟从汇编的角度,将参数如何传递的进行了比较好的说明。1. 32位程序普通函数普通. 阅读全文

posted @ 2014-01-25 16:46 anzhsoft 阅读(673) 评论(0) 推荐(0) 编辑

2014年1月24日

Linux Debugging(二): 熟悉AT&T汇编语言

摘要: 没想到《Linux Debugging:使用反汇编理解C++程序函数调用栈》发表了收到了大家的欢迎。但是有网友留言说不熟悉汇编,因此本书列了汇编的基础语法。这些对于我们平时的调试应该是够用了。1 AT&T与Intel汇编语法对比 本科时候大家学的基本上都是Intel的8086汇编语言,微软采用的就是这种格式的汇编。GCC采用的是AT&T的汇编格式, 也叫GAS格式(Gnu ASembler GNU汇编器)。1、寄存器命名不同AT&TIntel说明%eaxeaxIntel的不带百分号2、操作数顺序不同AT&TIntel说明movl %eax, %ebxmov eb 阅读全文

posted @ 2014-01-24 23:30 anzhsoft 阅读(189) 评论(0) 推荐(0) 编辑

Linux Debugging(一): 使用反汇编理解C++程序函数调用栈

摘要: 拿到CoreDump后,如果看到的地址都是????,那么基本上可以确定,程序的栈被破坏掉了。GDB也是使用函数的调用栈去还原“事故现场”的。因此理解函数调用栈,是使用GDB进行现场调试或者事后调试的基础,如果不理解调用栈,基本上也从GDB得不到什么有用的信息。当然了,也有可能你非常“幸运”, 一个bt就把哪儿越界给标出来了。但是,大多数的时候你不够幸运,通过log,通过简单的code walkthrough,得不到哪儿出的问题;或者说只是推测,不能确诊。我们需要通过GDB来最终确定CoreDump产生的真正原因。 本文还可以帮助你深入理解C++函数的局部变量。我们学习时知道局部变量是是存储到. 阅读全文

posted @ 2014-01-24 17:23 anzhsoft 阅读(304) 评论(0) 推荐(0) 编辑

Awards and Certifications @EMC

摘要: 1. Awards1.1 Jun. 12, 2012, Accurev Migration1.2 Oct. 16, 2012, Deliver Inyo RTM to Rockies1.3 Jul. 17, 2013, Kittyhawk Health and Alerts Issue triage and Bug fix1.4 Aug. 2013, Rockies RTM1.5 Dec. 16, 2013, Kittyhawk approaching B-line1.6 Feb. 9, 2014. Fast Transition of File Backend2. Certification 阅读全文

posted @ 2014-01-24 10:03 anzhsoft 阅读(128) 评论(0) 推荐(0) 编辑

2014年1月18日

存储那些事儿(一):异构虚拟化一种实现SMIS

摘要: 1. 背景 企业存储是企业信息系统管理很重要的组成部分。企业存储包含了大量的数据,供大量人使用。对于航空系统和金融系统来说,信息存储就更加重要了。 作为企业信息存储,扩展性是非常重要的,因为现在企业对于空间的使用越来越多。 那么一个企业可能会采用其他存储厂商的产品,原来信息如何保留? 使用数据迁移功能(migration),可以将数据转移到其他系统上。但是企业数据数以P级,还是占企业IT支出很大的一部分的。因此除非是热点数据,否则大部分的数据肯定还是保留在原有系统上。那么,如何保证这些原有系统可以正常使用呢?或者说,存储产品如何管理其他存储厂商的产品? 答案就是存储产品支持异构虚拟化! 异.. 阅读全文

posted @ 2014-01-18 21:06 anzhsoft 阅读(1153) 评论(0) 推荐(0) 编辑

2014年1月17日

QT Mobile: 一统IOS/Andriod/WP/等移动平台的江湖

摘要: 笔者在研究生阶段做了2年的QT开发,那时候QT在嵌入式的图形开发中非常火,当时Nokia在智能机的份额还是第一。想当年,Nokia从Trolltech的手中收购了QT,当时大家还在例会上讨论QT终于不会夭折了(后来了解到,这点担心其实是杞人忧天,大名鼎鼎的KDE、Google Earth、Skype、Photoshop Elements等等正是使用其开发的Qt工具包。因此QT至少在嵌入式开发和桌面开发中有自己的位置)。我们实验室原来采用的是Nano-X,开发维护的成本都比较高,还有各种各样的问题,最重要的是,这个开源项目不再有任何支持了。。。所以你想要解决已有问题的话,需要靠自己。纵然实验室人 阅读全文

posted @ 2014-01-17 14:38 anzhsoft 阅读(865) 评论(0) 推荐(0) 编辑

2014年1月13日

Linux C 下的大文件操作

摘要: 这里说的大文件指大小超过4G的文件。在32位环境下,linux默认打开、读、写超过4G的文件会返回错误。定义如下宏可以突破这个限制,对read/write和fread/fwrite同时有效。注意它必须定义在所有头文件之前。#ifndef _FILE_OFFSET_BITS#define _FILE_OFFSET_BITS 64#endif或者在编译时添加如下参数:-D_FILE_OFFSET_BITS=64-D_LARGEFILE_SOURCE或者使用函数fopen64,但是该函数我的测试机上没有找到相关的说明,所以在我这里不可用。_FILE_OFFSET_BITS的定义简单来说就是在32位机 阅读全文

posted @ 2014-01-13 16:23 anzhsoft 阅读(328) 评论(0) 推荐(0) 编辑

Linux 共享内存 详解

摘要: 一、什么是共享内存区共享内存区是最快的可用IPC形式。它允许多个不相关的进程去访问同一部分逻辑内存。如果需要在两个运行中的进程之间传输数据,共享内存将是一种效率极高的解决方案。一旦这样的内存区映射到共享它的进程的地址空间,这些进程间数据的传输就不再涉及内核。这样就可以减少系统调用时间,提高程序效率。共享内存是由IPC为一个进程创建的一个特殊的地址范围,它将出现在进程的地址空间中。其他进程可以把同一段共享内存段“连接到”它们自己的地址空间里去。所有进程都可以访问共享内存中的地址。如果一个进程向这段共享内存写了数据,所做的改动会立刻被有访问同一段共享内存的其他进程看到。要注意的是共享内存本身没有提 阅读全文

posted @ 2014-01-13 14:27 anzhsoft 阅读(342) 评论(0) 推荐(0) 编辑

2014年1月7日

The Singularity is Near---预测人工智能,科技走向的神书---奇点临近

摘要: 比尔盖茨评价本文作者:雷·库兹韦尔是我所知道的预测人工智能未来最权威的人。他的这本耐人寻味的书预测未来信息技术得到空前发展,将促使人类超越自身的生物极限——以我们无法想象的方式超越我们的生命。中文版已经由机械工业出版社出版, amazon 购买衔接这是本人研究生阶段参与翻译的。贴上译者序,让你了解本书,以及成为本书的fans:当人们看到太多相同的时候,也许我们很无知;当人们看到太多不同的时候,也许我们视野不够大;当人们同时看到不同和相同的时候,也许这恰是我们的智慧原点。物质是静止的能量,能量是运动的物质,生命是连接物质与能量的桥梁;智慧是生命的形态,智能是智慧的简化,计算是智慧的元素 阅读全文

posted @ 2014-01-07 12:53 anzhsoft 阅读(208) 评论(0) 推荐(0) 编辑

导航