发布时间:2015-04-29 16:18:01
zhangzhibiao02005 2014-09-20 16:41r10 0xa 10r11 0x202 514r12 &nbs.........【阅读全文】
发布时间:2015-04-29 16:14:43
当我们的程序core掉之后,如果能获取到core时的函数调用堆栈将非常有利于定位问题。在Windows下可以使用SEH机制;在Linux下通过gdb使用coredump文件即可。但有时候由于某些错误导致堆栈被破坏,发生拿不到调用堆栈的情况。一些基础预备知识本文不再详述,可以参考以下文章:函数调用栈的获取原理分析.........【阅读全文】
发布时间:2015-04-29 16:13:15
程序发生异常时,将函数的调用栈打印出来,可以大大提高定位效率。Linux中提供了三个函数用来获取调用栈:/* 获取函数调用栈 */int backtrace(void **buffer, int size);/* 将调用栈中的函数地址转化为函数名称 并返回一个字符串数组 */char **backtrace_symbols(void *const *buffer, int size);.........【阅读全文】
发布时间:2015-04-29 16:02:53
上一篇文章《在Linux程序中输出函数调用栈》,讲述了在Linux中如何利用backtrace获取调用栈,本篇文章主要介绍一下获取函数调用栈的原理,并给出相应的实现方式。要了解调用栈,首先需要了解函数的调用过程,下面用一段代码作为例子:#include int add(int a, int b) { int result = 0; result .........【阅读全文】
发布时间:2015-04-29 15:56:44
通用高效内存池的设计要点:1)快速分配;2)快速回收;3)空间利用率高。4)类型独立(最好)。不打算对比各种内存分配器的优劣,主要是介绍一最近实现的特定类型的通用高效C++内存池。特点:1)基于共享内存; -- 不会因为进程挂掉而丢失数据。2)快速分配; -- 在内存池接近满时,效率不.........【阅读全文】