2013年5月14日

在C/C++程序里打印调用栈信息

摘要: 我们知道,GDB的backtrace命令可以查看堆栈信息。但很多时候,GDB根本用不上。比如说,在线上环境中可能没有GDB,即使有,也不太可能让我们直接在上面调试。如果能让程序自己输出调用栈,那是最好不过了。本文介绍和调用椎栈相关的几个函数。 NAME backtra... 阅读全文

posted @ 2013-05-14 16:56 胡永光 阅读(322) 评论(0) 推荐(0) 编辑

backtrace-----打印进程异常退出时的堆栈信息

摘要: #include #include "debug_trace.h" #define TRACE_SIZE 1024 static void trace_print(int signal_type) { int trace_id = -1; void *buffer[100]; c... 阅读全文

posted @ 2013-05-14 16:46 胡永光 阅读(317) 评论(0) 推荐(0) 编辑

linux内存管理概述

摘要: linux内存管理建立在基本的分页机制基础上,在linux内核中RAM的某些部分将会永久的分配给内核,并用来存放内核代码以及静态内核数据结构。RAM的其余部分称为动态内存,这不仅是进程所需的宝贵资源,也是内核本身所需的宝贵资源。实际上,整个系统的性能取决于如何有效地管理动态内存。因此,现在所有多... 阅读全文

posted @ 2013-05-14 16:15 胡永光 阅读(107) 评论(0) 推荐(0) 编辑

CFS 调度器学习笔记

摘要: http://blog.csdn.net/peimichael/article/details/5218335 阅读全文

posted @ 2013-05-14 14:46 胡永光 阅读(80) 评论(0) 推荐(0) 编辑

CFS进程调度

摘要: 一、概述 linux 2.6.23中采用了一个全新的调度策略CFS(Completely Fair Scheduler)来处理非实时进程。 二、主要数据结构 1.为了和原先的实时策略更好的融合,linux在实现CFS之余,还将内核的调度策略模块化,添加了新的结构体sched_class用于管理... 阅读全文

posted @ 2013-05-14 14:43 胡永光 阅读(219) 评论(0) 推荐(0) 编辑

GCC编译之如何控制共享文件导出符号

摘要: 背景 前不久在调试一个与导出符号相关的bug,问题大概如此: 模块A.so在堆上构造了一个对象即 CTest *one = new CTest; , CTest在A.so定义,后来使用one->AMemFunc();,即调用一个成员函数时崩溃。原来在另一个模块B.so(比A.so先加载)中,也... 阅读全文

posted @ 2013-05-14 11:07 胡永光 阅读(266) 评论(0) 推荐(0) 编辑

导航