调试64bit程序所面临的挑战
如果到目前为止,你还没有调试过优化后的64bit代码,为了不落后于时代,那就赶紧去尝试吧。由于64bit下fastcall调用方式和大量通用寄存器的存在,找出任意栈帧中局部变量的值将会变得非常棘手。
本文,我将详述一些我非常喜欢的调试64bit代码的技巧。但在此之前,我们先对64bit下函数的调用方式做一个了解。
X64调用约定
如果你熟悉32位平台下的fa...
分类:
其他好文 时间:
2015-01-31 20:40:15
阅读次数:
161
动多态的设计思想:对于相关的对象类型,确定它们之间的一个共同功能集,然后在基类中,把这些共同的功能声明为多个公共的虚函数接口。各个子类重写这些虚函数,以完成具体的功能。客户端的代码(操作函数)通过指向基类的引用或指针来操作这些对象,对虚函数的调用会自动绑定到你实际提供的子类对象上去。静多态的设计思想...
分类:
编程语言 时间:
2015-01-30 19:09:26
阅读次数:
170
#includeusing namespace std;class Point{ public: void output() { } static void init() { ...
分类:
其他好文 时间:
2015-01-29 22:23:26
阅读次数:
111
精髓:operator new()完成的操作一般只是分配内存;而构造函数的调用(如果需要)是在new运算符中完成的。operator new和new 运算符是不同的,operator new只分配内存,而只要new出现无论是不是operator new都会调用new运算符从而调用析构函数。例子是:#...
分类:
编程语言 时间:
2015-01-25 08:41:29
阅读次数:
302
判断题1 涉及到的一个问题是类内赋值构造函数的传值问题。如果允许复制构造函数传值,就会在赋值构造函数内部递归一般的进行对复制构造函数的调用,最终必然导致栈溢出。 如果仔细观察就会发现,如果要是调用复制构造函数,赋值构造函数的输入参数必然是引用形式。 举例; A(const A &other) 面试题...
分类:
移动开发 时间:
2015-01-22 21:44:28
阅读次数:
205
9.1题:构造函数的调用#include#includeusing namespace std;class Golf{ string m_name; int m_handicap; public: Golf():m_name("Sam"),m_handicap...
分类:
其他好文 时间:
2015-01-20 23:29:33
阅读次数:
300
onFinishInflate()函数的调用时机:
onFinishInflate() 当View中所有的子控件均被映射成xml后触发
onMeasure(int, int) 确定所有子元素的大小
onLayout(boolean, int, int, int, int) 当View分配所有的子元素的大小和位置时触发
...
分类:
其他好文 时间:
2015-01-20 17:59:06
阅读次数:
187
C++的4种内存分配方式 :堆、栈、自由存储区、全局/静态存储区和常量存储区 栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。在一个进程中,位于用户虚拟地址空间顶部的是用户栈,编译器用它来实现函数的调用。和堆一样,用户栈在程序执行期....
分类:
编程语言 时间:
2015-01-20 13:26:01
阅读次数:
281
1 #include 2 #include 3 using namespace std; 4 class Person 5 { 6 static const unsigned LIMIT = 25;//忘了加unsigned 7 string lname; 8 char ...
分类:
其他好文 时间:
2015-01-19 20:57:14
阅读次数:
160
三、 Thrift的工作原理
1.普通的本地函数调用过程
例如,有如下关于本地函数的调用的java代码,在函数caller中调用函数getStr获取两个字符串的拼接结果:
代码3.1
本地函数调用调用方和被调用方都在一个程序内部,只是cpu在执行调用的时候切换去执行被调用的函数,执行完被调用函数之后,再切换回来执行调用之后的代码,其调用过程如下图3.1所示:
...
分类:
其他好文 时间:
2015-01-16 19:12:25
阅读次数:
220