linux
文章平均质量分 70
hust_wusen
这个作者很懒,什么都没留下…
展开
-
valgrind检测内存泄漏
Valgrind 使用用法:valgrind [options] prog-and-args [options]: 常用选项,适用于所有Valgrind工具-tool=最常用的选项。运行valgrind中名为toolname的工具。默认memcheck。h -help 显示帮助信息。-version 显示valgrind内核的版本,每个工具都有各自的版本。q -quie原创 2013-04-09 09:47:09 · 1478 阅读 · 0 评论 -
窥探 kernel --- copy_process
本系列文章由张同浩编写,转载请注明出处:http://blog.csdn.net/muge0913/article/details/7479714邮箱:muge0913@sina.com在do_fork中调用了copy_process,该函数及其重要。该函数创建进程描述符和子进程需要的其他数据结构。它定义在linux2.6.xxx/kernel/fork.c。只转载 2013-04-09 10:08:06 · 1128 阅读 · 0 评论 -
malloc_stats---检查内存泄露的神器
在之前的博客中提到过,valgrind可以用来检测内存泄露,但在使用中,往往会遇到一些问题,给调试工作带来很多不必要的麻烦,我自己遇到的有以下两种: (1)内存泄露误检(系统初始化时,可能有一些需要长期保存在内存中的数据结构,这些空间是永远不释放的,而这些内存会被认为绝对泄露) (2)valgrind检查内存泄露过于全面,运行后的结果太多往往很难从中找到有用的信息。原创 2013-04-10 12:31:17 · 8317 阅读 · 0 评论 -
内存管理内幕
内存管理内幕动态分配的选择、折衷和实现级别: 初级Jonathan Bartlett (johnnyb@eskimo.com), 技术总监, New Media Worx2004 年 11 月 29 日本文将对 Linux™ 程序员可以使用的内存管理技术进行概述,虽然关注的重点是 C 语言,但同样也适用于其他语言。文中将为您提供如何管理内存的细节,然后将进一步展示如何手转载 2013-04-10 14:25:48 · 1126 阅读 · 0 评论 -
代码调试--先内核转储文件再gdb调试
gdb跟踪调试是linux环境下调试常用的方法,但在解决一些问题,如频繁创建线程,打印信息很多时,gdb调试会显得效率很低。这个时候,可以先生成内核转储文件,再针对生成的转储文件进行调试,从而大幅度提高调试效率。1、生成内核转储文件# ulimit –a //查看默认的配置信息,第一项为内核转储文件大小,默认值为0 # ulimit –c unlimited //原创 2013-04-09 10:04:39 · 2352 阅读 · 0 评论 -
linux内核如何管理内存
在分析了进程的虚拟地址布局,我们转向内核以及他管理用户内存的机制。下图是gonzo的例子: Linux进程在内核中是由task_struct进程描述符实现 的,task_struct的mm字段指向内存描述符mm_struct,他是进程的一个内存执行摘要。如上图所示,mm_struct存储了内存各个段 的开始和结束地址、进程所使用的内存页面数(rss代表常驻集合大小)、使用的转载 2013-04-12 09:11:44 · 1302 阅读 · 0 评论 -
open系统调用流程--从vfs到底层文件系统
sys_open (filename,flag,mode) do_sys_open (dfd=-100, filename=null,flags=35137, mode=438) get_unused_fd_flags(flags),获得一个文件句柄fd do_filp_open (dfd,pathname,open_flag,mode),获得一个文件对象 path_l原创 2013-05-17 09:10:02 · 1690 阅读 · 0 评论 -
Linux/windows 进程/线程间通信机制
Linux进程间通信linux下进程间通信的几种主要手段简介:a) 管道(Pipe)及有名管道(named pipe):管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信;b) 信号(Signal):信号是比较复杂的通信方式,用于通知接受进程有某种事件发生,除了用于进程转载 2013-08-13 22:41:57 · 1413 阅读 · 0 评论