
Linux/Unix环境编程
ycf74514
好读书、求甚解
展开
-
理解堆栈及其利用方法
堆栈基础篇:1、堆栈结构从广义上来讲,堆栈其实就是一种后进先出的数据结构,这跟队列的作用正好相反, 你可以定义一个数组或用malloc分配一块内存来模拟堆栈的作用, 比如openjdk的解释器就要用到堆栈结构来做计算。我们在从c的角度来仔细审视下堆栈的结构,本文以intel体系结构为例。intel处理器定义了跟堆栈有关的几个寄存器:esp/rsp: 保存了当前堆栈栈顶指针的寄转载 2015-09-26 23:12:26 · 749 阅读 · 0 评论 -
UNIX下的LD_PRELOAD环境变量
前言 也许这个话题并不新鲜,因为LD_PRELOAD所产生的问题由来已久。不过,在这里,我还是想讨论一下这个环境变量。因为这个环境变量所带来的安全问题非常严重,值得所有的Unix下的程序员的注意。 在开始讲述为什么要当心LD_PRELOAD环境变量之前,请让我先说明一下程序的链接。所谓链接,也就是说编译器找到程序中所引用的函数或全局变量所存在的位置。一般来说,程序的链转载 2015-10-05 13:45:19 · 468 阅读 · 0 评论 -
Linux下程序的Profile工具
我们在写程序,特别是嵌入式程序的时候,通常需要对程序的性能进行分析,以便程序能够更快更好地运行,达到实时(real-time)的目的。如果程序很大,分析起来就很困难。如果有个工具能够自动进行程序的性能分析,那就最好了。这里介绍一种Linux下程序的Profiling工具----GNU profiler。gprof的基本用法:1. 使用 -pg 选项编译和链接你的应用程序转载 2015-10-20 17:02:25 · 486 阅读 · 0 评论 -
ucontext实现协程
转载自:http://blog.youkuaiyun.com/qq910894904/article/details/41911175目录(?)[+]1.干货写在前面协程是一种用户态的轻量级线程。本篇主要研究协程的C/C++的实现。首先我们可以看看有哪些语言已经具备协程语义:比较重量级的有C#、erlang、golang*轻量级有python、lua、j转载 2015-12-07 17:09:37 · 593 阅读 · 0 评论 -
解决Mac下GDB提示签名错误
解决Mac下GDB提示签名错误原文作者:Power 转载请保留此链接。安装GDB新的Mac下有gcc、g++,但是没有gdb有人说安装XCode就有,但是我真没有通过Homebrew安装,没有的执行安装brew命令ruby -e "$(curl -fsSLk https://raw.github.com/Homebrew/homebrew/go/install)"然后安转载 2015-11-28 21:45:18 · 1229 阅读 · 0 评论 -
An interesting kind of JavaScript memory leak
Recently, Avi and David tracked down a surprising JavaScript memory leak in Meteor's live HTML template rendering system. The fix will be in the 0.6.5 release (in its final stages of QA right now).转载 2016-04-11 17:10:27 · 1083 阅读 · 0 评论 -
HOWTO: using gprof with multithreaded applications
gprof,PRE_LOAD转载 2016-04-21 22:10:35 · 563 阅读 · 0 评论 -
xv6进程调度代码
最近在研究libco,看到协程切换运行,于是想到很早之前看的xv6,于是翻了一下代码,看看进程调度,以及上下文切换的部分,怀念那段撸OS的日子// Per-CPU process scheduler.// Each CPU calls scheduler() after setting itself up.// Scheduler never returns. It lo原创 2017-08-20 08:46:51 · 1779 阅读 · 0 评论