Chinaunix首页 | 论坛 | 博客
  • 博客访问: 494501
  • 博文数量: 133
  • 博客积分: 1235
  • 博客等级: 少尉
  • 技术积分: 1201
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-08 19:59
文章分类

全部博文(133)

文章存档

2023年(12)

2022年(3)

2018年(2)

2017年(4)

2016年(4)

2015年(42)

2014年(1)

2013年(12)

2012年(16)

2011年(36)

2010年(1)

发布时间:2015-04-29 16:14:43

当我们的程序core掉之后,如果能获取到core时的函数调用堆栈将非常有利于定位问题。在Windows下可以使用SEH机制;在Linux下通过gdb使用coredump文件即可。但有时候由于某些错误导致堆栈被破坏,发生拿不到调用堆栈的情况。一些基础预备知识本文不再详述,可以参考以下文章:函数调用栈的获取原理分析.........【阅读全文】

阅读(1982) | 评论(0) | 转发(0)

发布时间:2015-04-29 16:13:15

程序发生异常时,将函数的调用栈打印出来,可以大大提高定位效率。Linux中提供了三个函数用来获取调用栈:/* 获取函数调用栈 */int backtrace(void **buffer, int size);/* 将调用栈中的函数地址转化为函数名称 并返回一个字符串数组 */char **backtrace_symbols(void *const *buffer, int size);.........【阅读全文】

阅读(1998) | 评论(0) | 转发(0)

发布时间:2015-04-29 16:02:53

上一篇文章《在Linux程序中输出函数调用栈》,讲述了在Linux中如何利用backtrace获取调用栈,本篇文章主要介绍一下获取函数调用栈的原理,并给出相应的实现方式。要了解调用栈,首先需要了解函数的调用过程,下面用一段代码作为例子:#include int add(int a, int b) { int result = 0; result .........【阅读全文】

阅读(1278) | 评论(0) | 转发(0)

发布时间:2015-04-29 15:56:44

通用高效内存池的设计要点:1)快速分配;2)快速回收;3)空间利用率高。4)类型独立(最好)。不打算对比各种内存分配器的优劣,主要是介绍一最近实现的特定类型的通用高效C++内存池。特点:1)基于共享内存; -- 不会因为进程挂掉而丢失数据。2)快速分配; -- 在内存池接近满时,效率不.........【阅读全文】

阅读(1362) | 评论(0) | 转发(0)

发布时间:2015-04-29 15:51:40

Unix跟Windows等那些”对于开发者易于使用”的OS比起来,在信号和线程的利用方面有诸多的限制。但是即使不知道这些知识就做构架设计和实现的情况也随处可见。这个就是那些经常不能再现的bug的温床吧。因此,我想分成几回来写一些准则来防止陷入到这些圈套里。准则1:不依赖于信号收发的设计·给其他进程以及.........【阅读全文】

阅读(1958) | 评论(0) | 转发(0)
给主人留下些什么吧!~~
留言热议
请登录后留言。

登录 注册