C/C++
文章平均质量分 61
做个有思想的程序猿
知识是最便宜的,现在的书可以按斤称,互联网还有免费的资源;知识也是最宝贵的,看你有没有时间把它装进自己的脑袋中再发挥出来。
展开
-
Reversing Microsoft Visual C++ Part II: Classes, Methods and RTTI
AbstractMicrosoft Visual C++ is the most widely used compiler for Win32 so it is important for the Win32 reverser to be familiar with its inner working. Being able to recognize the compiler-genera转载 2014-06-24 15:59:33 · 500 阅读 · 0 评论 -
转:C++的异常处理
一、什么是异常处理 一句话:异常处理就是处理程序中的错误。二、为什么需要异常处理,以及异常处理的基本思想 C++之父Bjarne Stroustrup在《The C++ Programming Language》中讲到:一个库的作者可以检测出发生了运行时错误,但一般不知道怎样去处理它们(因为和用户具体的应用有关);另一方面,库的用户知道怎样处理这些错误,但却转载 2014-07-28 16:37:10 · 196 阅读 · 0 评论 -
auto_ptr的源码
namespace std{ template class auto_ptr { private: T* ap; public: // constructor & destructor ----------------------------------- (1) explicit auto_ptr (T* ptr = 0) throw() : a转载 2014-07-09 23:35:47 · 311 阅读 · 0 评论 -
shared_ptr
template class SmartPointer {public: SmartPointer(T * ptr) { ref = ptr; ref_count = (unsigned*)malloc(sizeof(unsigned)); *ref_count = 1; } SmartP原创 2014-07-09 23:52:19 · 215 阅读 · 0 评论 -
More effective c++ 11(禁止异常(exceptions)流出destructors之外)
#include using namespace std;double fun(double x, double y) //定义函数{ if(y==0) { throw y; //除数为0,抛出异常 } return x/y; //否则返回两个数的商}class B{public: ~B() { int a = fun(4,0); //因为除数转载 2014-07-28 17:28:52 · 461 阅读 · 0 评论 -
[c++元编程一] 介绍
// 主模板templatestruct Fib{ enum { Result = Fib::Result + Fib::Result };};// 完全特化版template <>struct Fib{ enum { Result = 1 };};// 完全特化版template <>struct Fib{ enum { Result =原创 2015-09-14 00:30:45 · 253 阅读 · 0 评论 -
ThreadSanitizer
Snaitizer家族,还有AddressSanitizer 和 MemorySanitizerThreadSanitizer又叫TSan,是一个检查线程Data Race的C/C++工具。它集成在新版的gcc和clang中,通过编译时加-fsanitize=thread,可以在运行时检测出Data Race的问题。ThreadSanitizer官网:https://c原创 2015-11-12 12:39:30 · 940 阅读 · 0 评论 -
运行过程中打印出函数调用栈
gcc main.c -g -rdynamic/* main.c */#include #include #include #define MAX_STACK_LAYERS 20void print_trace (void){ void *array[MAX_STACK_LAYERS]; size_t size; char **string原创 2015-11-20 10:23:34 · 749 阅读 · 0 评论 -
[转]定位多线程内存越界问题实践总结
定位多线程内存越界问题实践总结2013/2/4杨志丰 yangzhifeng83@gmail.com 关键字 多线程,内存越界,valgrind,electric-fence,mprotect,libsigsegv,glibc 最近定位了在一个多线程服务器程序(OceanBase MergeServer)中,一个线程非法篡改另一个线程的内存而导致程序转载 2016-01-14 11:06:41 · 620 阅读 · 0 评论