<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[undead的专栏]]></title><description><![CDATA[solaris core crash mdb dtrace]]></description><link>https://blog.youkuaiyun.com/undead</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; undead]]></copyright><item><title><![CDATA[程序线程退出后，zombie (僵尸线程）的问题！]]></title><link>https://blog.youkuaiyun.com/undead/article/details/6447553</link><guid>https://blog.youkuaiyun.com/undead/article/details/6447553</guid><author>undead</author><pubDate>Thu, 26 May 2011 14:55:00 +0800</pubDate><description><![CDATA[
作者: uNDeaDEmail: someonebw@gmail.comBlog: http://blog.youkuaiyun.com/undead转载请注明出处
动态观察生产环境下的进程！
pstack 进程名发现如下问题：
----------------- lwp# 757 / thread# 757 --------------------ffffffff07413f58 startTaskHook(), exit value = 0x0000000000000000** zombie (exited, n]]></description><category></category></item><item><title><![CDATA[The Solaris 10 top 11-20]]></title><link>https://blog.youkuaiyun.com/undead/article/details/6447391</link><guid>https://blog.youkuaiyun.com/undead/article/details/6447391</guid><author>undead</author><pubDate>Thu, 26 May 2011 14:10:00 +0800</pubDate><description><![CDATA[

Solaris 10 has way more features than any release of Solaris that I can remember, and Sun's been marketing the hell out of them. Here's my top 10 list roughly in order of how cool I think each is:

DTrace - of course...
ZFS - the amazing new file system
]]></description><category></category></item><item><title><![CDATA[Number 11 of 20: libumem]]></title><link>https://blog.youkuaiyun.com/undead/article/details/6447386</link><guid>https://blog.youkuaiyun.com/undead/article/details/6447386</guid><author>undead</author><pubDate>Thu, 26 May 2011 14:09:00 +0800</pubDate><description><![CDATA[
libumem
In Solaris 2.4 we replaced the old buddy allocator1 the slab allocator2 invented by Jeff Bonwick. The slab allocator is covered in pretty much every operating systems text book -- and that's because most operating systems are now using it. In Sola]]></description><category></category></item><item><title><![CDATA[字节对齐和C/C++函数调用方式学习总结]]></title><link>https://blog.youkuaiyun.com/undead/article/details/6447379</link><guid>https://blog.youkuaiyun.com/undead/article/details/6447379</guid><author>undead</author><pubDate>Thu, 26 May 2011 14:06:00 +0800</pubDate><description><![CDATA[
前言：
《***软件编程规范》中提到："在定义结构数据类型时，为了提高系统效率，要注意4字节对齐原则……"。本文解释x86上字节对齐的机制，其他架构读者可自行试验。同时，本文对C/C++的函数调用方式进行了讨论。
1．
先看下面的例子：
?View Code CPP




1
2
3
4
5
6
7
8
9
10
11
12
13



struct A{    
char c1;    
int i;    
short s;    
int j;    
}a;    
 
struct B{   ]]></description><category></category></item><item><title><![CDATA[结构在优化编译中的对齐问题 pragma(push, N) pragma(pop)]]></title><link>https://blog.youkuaiyun.com/undead/article/details/6447373</link><guid>https://blog.youkuaiyun.com/undead/article/details/6447373</guid><author>undead</author><pubDate>Thu, 26 May 2011 14:05:00 +0800</pubDate><description><![CDATA[
结构在优化编译中的对齐问题
Q: 我正在写一个流模块，其中用到了#pragma pack()，当使用
gcc -D_KERNEL -c abc.cld -r -o abc abc.o
编译链接时，一切正常。为了获得64-bit模块，我必须使用Sun Workshop 5.0，结果导致系统崩溃。访问
http://docs.sun.com/htmlcoll/coll.32.8/iso-8859-1/CPPPG/Pragmas.html#15434
上面说必须在编译链接应用程序的时候指定"-misalign"]]></description><category></category></item><item><title><![CDATA[内存溢出处理方法 给些建议]]></title><link>https://blog.youkuaiyun.com/undead/article/details/6447369</link><guid>https://blog.youkuaiyun.com/undead/article/details/6447369</guid><author>undead</author><pubDate>Thu, 26 May 2011 14:04:00 +0800</pubDate><description><![CDATA[
最近做了个任务，内存溢出问题；静态影像下无问题，可是在动态影像下执行rep时量测元素400-500笔时就会内存溢出，调试很久也无进展，求教各方圣神终无结果，最后找出一篇文章供大家赏阅。如遇到内存溢出问题时或许有点帮助。还有可以链接下载的内存检测工具1. ccmalloc－Linux和Solaris下对C和C++程序的简单的使用内存泄漏和malloc调试库。2. Dmalloc－Debug Malloc Library.3. Electric Fence－Linux分发版中由Bruce Perens编写的m]]></description><category></category></item><item><title><![CDATA[如何在JVM挂起的时候调试（翻译）]]></title><link>https://blog.youkuaiyun.com/undead/article/details/6447355</link><guid>https://blog.youkuaiyun.com/undead/article/details/6447355</guid><author>undead</author><pubDate>Thu, 26 May 2011 13:59:00 +0800</pubDate><description><![CDATA[
第一次翻译，大家凑合着看，英文好的请看原文:http://www.unixville.com/~moazam/stories/2004/05/18/debuggingHangsInTheJvm.html
在JVM挂起时调试线程
有时，JAVA用户或开发者会遇到JAVA应用程序看起来像挂起的问题，而且没有核心文件产生，没有任何的IO检测，这个过程只是坐在那里等待...通常这些问题可以追溯到操作系统和的JVM级别线程。
以下内容是从Solaris方面来介绍的，也许不久我会写些针对Linux线程的东西
两个线程]]></description><category></category></item><item><title><![CDATA[A Performance Optimization for C/C++ Systems That Employ Time-Stamping]]></title><link>https://blog.youkuaiyun.com/undead/article/details/6447339</link><guid>https://blog.youkuaiyun.com/undead/article/details/6447339</guid><author>undead</author><pubDate>Thu, 26 May 2011 13:51:00 +0800</pubDate><description><![CDATA[

A Performance Optimization for C/C++ Systems That Employ Time-Stamping
































Print-friendly Version











By Amjad Khan and Neelakanth Nadgir, November 23, 2004
























This article describes how to optimize]]></description><category></category></item><item><title><![CDATA[Bus error的解决方法]]></title><link>https://blog.youkuaiyun.com/undead/article/details/6447334</link><guid>https://blog.youkuaiyun.com/undead/article/details/6447334</guid><author>undead</author><pubDate>Thu, 26 May 2011 13:48:00 +0800</pubDate><description><![CDATA[
在x86+Linux上写的程序，在PC机上运行得很好。可是使用ARM的gcc进行交叉编译，再送到DaVinci目标板上运行的时候，出现了Bus error。出现的位置如下（其中Debug的内容是我在程序中添加的调试信息）：root@211.69.193.189:~# arm_v5t_le-gcc -g shit.croot@211.69.193.189:~# ./a.outDebug: malloc space for the actual data: temp_buf = 0x13118Debug: i]]></description><category></category></item><item><title><![CDATA[浅谈内存泄漏]]></title><link>https://blog.youkuaiyun.com/undead/article/details/6447332</link><guid>https://blog.youkuaiyun.com/undead/article/details/6447332</guid><author>undead</author><pubDate>Thu, 26 May 2011 13:45:00 +0800</pubDate><description><![CDATA[<br />文章标题：浅谈内存泄漏<br />原 作 者：johnnyxia<br />原 出 处：www.youkuaiyun.com<br />发 布 者：loose_went<br />发布类型：转载<br />发布日期：2006-09-05<br />今日/总浏览：1/5095<br /> <br />对于一个c/c++程序员来说，内存泄漏是一个常见的也是令人头疼的问题。已经有许多技术被研究出来以应对这个问题，比如Smart Pointer，Garbage Collection等。Smart Pointer技术]]></description><category></category></item><item><title><![CDATA[段错误bug的调试]]></title><link>https://blog.youkuaiyun.com/undead/article/details/6447322</link><guid>https://blog.youkuaiyun.com/undead/article/details/6447322</guid><author>undead</author><pubDate>Thu, 26 May 2011 13:41:00 +0800</pubDate><description><![CDATA[
我们在用C/C++语言写程序的时侯，内存管理的绝大部分工作都是需要我们来做的。实际上，内存管理是一个比较繁琐的工作，无论你多高明，经验多丰富，难免会在此处犯些小错误，而通常这些错误又是那么的浅显而易于消除。但是手工"除虫"（debug），往往是效率低下且让人厌烦的，本文将就"段错误"这个内存访问越界的错误谈谈如何快速定位这些"段错误"的语句。下面将就以下的一个存在段错误的程序介绍几种调试方法：



1 dummy_function (void)2 {3 unsigned char *ptr = 0x00]]></description><category></category></item><item><title><![CDATA[总结段错误(Segmentation fault)]]></title><link>https://blog.youkuaiyun.com/undead/article/details/6447310</link><guid>https://blog.youkuaiyun.com/undead/article/details/6447310</guid><author>undead</author><pubDate>Thu, 26 May 2011 13:38:00 +0800</pubDate><description><![CDATA[
1）往受到系统保护的内存地址写数据
有些内存是内核占用的或者是其他程序正在使用，为了保证系统正常工作，所以会受到系统的保护，而不能任意访问.







1
#include 








2
int








3
main()








4
{








5
int i = 0;








6
scanf ("%d", i); /* should have used &i */








7
printf ("%d/n", i);








8
return 0]]></description><category></category></item><item><title><![CDATA[C的动态内存管理--mallac()和free()]]></title><link>https://blog.youkuaiyun.com/undead/article/details/6447301</link><guid>https://blog.youkuaiyun.com/undead/article/details/6447301</guid><author>undead</author><pubDate>Thu, 26 May 2011 13:35:00 +0800</pubDate><description><![CDATA[
关于c的动态内存管理一直是个经久不衰的话题,面试也是基本上都会考的,本来感觉已经明白了,但是今天使用的时候一不小心导致程序崩溃了,因此深入的去查了下资料,收获不少...贴出来与大家分享...
先贴个错误代码:
int * ptr = (int *)malloc(256);
ptr = ptr + 3;//对指针进行一个偏移操作
free(ptr);
这就是一段错误代码..?相信已经有人看出来错误在哪里了...如果不明白的继续往下面看...
先就这个错误讲解一下,free(ptr)函数释放内存的时候是需要从]]></description><category></category></item><item><title><![CDATA[信号 解释 / SIGSTERM SIGKILL 区别]]></title><link>https://blog.youkuaiyun.com/undead/article/details/6447285</link><guid>https://blog.youkuaiyun.com/undead/article/details/6447285</guid><author>undead</author><pubDate>Thu, 26 May 2011 13:31:00 +0800</pubDate><description><![CDATA[
信号 解释 / SIGSTERM SIGKILL 区别












SIGHUP 终止进程 终端线路挂断SIGINT 终止进程 中断进程SIGQUIT 建立CORE文件终止进程，并且生成core文件SIGILL 建立CORE文件 非法指令SIGTRAP 建立CORE文件 跟踪自陷SIGBUS 建立CORE文件 总线错误SIGSEGV 建立CORE文件 段非法错误SIGFPE 建立CORE文件 浮点异常SIGIOT 建立CORE文件 执行I/O自陷SIGKILL 终止进程 杀死进程SIGPIPE]]></description><category></category></item><item><title><![CDATA[指针 段错误 segament fault]]></title><link>https://blog.youkuaiyun.com/undead/article/details/6447278</link><guid>https://blog.youkuaiyun.com/undead/article/details/6447278</guid><author>undead</author><pubDate>Thu, 26 May 2011 13:29:00 +0800</pubDate><description><![CDATA[








列，例程序：



#include int main(int argc,char ** argv){char * p ;//p = '/0';//p = "abcdefg";
//*p = "abcdefg"[5];//segament fault //段错误
*p = "abcdefg";//segament fault //段错误//p = &("abcdefg" [5]);printf("%s/n",p);
 return 0;}




段错误的，两行，是因为指针变量p，是野指针]]></description><category></category></item><item><title><![CDATA[Solaris下的性能与调整]]></title><link>https://blog.youkuaiyun.com/undead/article/details/6447261</link><guid>https://blog.youkuaiyun.com/undead/article/details/6447261</guid><author>undead</author><pubDate>Thu, 26 May 2011 13:18:00 +0800</pubDate><description><![CDATA[
作者:C.Arthur 收藏Solaris下的性能与调整[ZT]http://www.chinaunix.net 作者:C.Arthur 发表于：2004-03-19 19:39:20
1. 着手性能问题2. 性能监测2.1. 从暴露出来的问题开始2.2. 知道你的系统在正常情况下会怎样2.3. 寻找性能瓶颈3. 一些常见问题和一些建议3.1. 64位的运算与容量能带来什么3.2. 空闲内存3.3. 优先内存页面调度3.4. 隐私的共享内存（ISM-Intimate Shared Memory）3.5. ]]></description><category></category></item><item><title><![CDATA[一次解决系统性能的日记(Solaris8)]]></title><link>https://blog.youkuaiyun.com/undead/article/details/6447260</link><guid>https://blog.youkuaiyun.com/undead/article/details/6447260</guid><author>undead</author><pubDate>Thu, 26 May 2011 13:17:00 +0800</pubDate><description><![CDATA[
bug id:有一台server（solaris 5.8），使用top测试，发现IDEL的CPU每次都是0%,但是查看各个进程使用的CPU时间百分比，没有一个进程的使用率高！这是怎么回事呢？百思而不解，后来使用vmstat 2查看(一般的，第一行输出都是无用的，错误的)，发现us的百分比是30%，而sy的百分比是60%，这就说明cpu时间都是在系统空间耗去的。（我们还有另外两台吃CPU很厉害的机子，但是都是很正常的吃的；在那两台机子上面，us的百分比是60%，而sy的百分比是30%）。
再使用命令prst]]></description><category></category></item><item><title><![CDATA[技巧: 使用truss、strace或ltrace诊断软件的"疑难杂症"]]></title><link>https://blog.youkuaiyun.com/undead/article/details/6447256</link><guid>https://blog.youkuaiyun.com/undead/article/details/6447256</guid><author>undead</author><pubDate>Thu, 26 May 2011 13:14:00 +0800</pubDate><description><![CDATA[
李凯斌 (pythonic@yeah.net), 项目经理
Unix文化、自由软件思想和传统黑客精神对李凯斌的"毒害"颇深，他白天是国内某家知名软件企业的项目经理，晚上则是一个Unix Hacker，喜欢摆弄Linux、FreeBSD和Python。可以通过 pythonic@yeah.net和他取得联系。MSN：hackkernel@hotmail.com。

简介
进程无法启动，软件运行速度突然变慢，程序的"Segment Fault"等等都是让每个Unix系统用户头痛的问题，本文通过三个实际案例演示]]></description><category></category></item><item><title><![CDATA[利用LD_PRELOAD发现程序潜在的问题]]></title><link>https://blog.youkuaiyun.com/undead/article/details/6447248</link><guid>https://blog.youkuaiyun.com/undead/article/details/6447248</guid><author>undead</author><pubDate>Thu, 26 May 2011 13:09:00 +0800</pubDate><description><![CDATA[
Solaris上，常常可以用LD_PRELOAD辅助mdb做一些调试、测试工作，可以发现一些其它手段难以发现的问题；最近就遇到一个。事情源于替换了程序中的某个基础部分之后，程序运行起来占用的物理内存有了较为显著的增加，却难以一下子拿出来个让人信服的原因。于是自然想到了去看一下程序真正运行的时候，某一部分内存是谁分配的。之前用 pmap -xalsF pid发现【heap】部分有显著增加，又不是在新加入的那个动态库里边。Solaris上有强大的mdb，辅助不同的模块可以得出很多有意思的结论，其中libume]]></description><category></category></item><item><title><![CDATA[Core Dump Management on the Solaris OS]]></title><link>https://blog.youkuaiyun.com/undead/article/details/6447246</link><guid>https://blog.youkuaiyun.com/undead/article/details/6447246</guid><author>undead</author><pubDate>Thu, 26 May 2011 13:08:00 +0800</pubDate><description><![CDATA[

Core Dump Management on the Solaris OS

































Print-friendly Version












By Adam Zhang, Sun Microsystems, April 2007, Updated June 2007























Abstract: Abnormal termination of a process will trigger a co]]></description><category></category></item></channel></rss>